时间:2021-05-22
早上起来闲来无事做,莫名其妙的就弹出了糗事百科的段子,转念一想既然你送上门来,那我就写个爬虫到你网站上爬一爬吧,一来当做练练手,二来也算找点乐子。
其实这两天也正在接触数据库的内容,可以将爬取下来的数据保存在数据库中,以待以后的利用。好了,废话不多说了,先来看看程序爬取的数据结果
值得一提的是,我在程序中想一下子爬取糗事百科 30 页的内容,但是出现了连接错误,当我把页数降到 20 页的时候,程序就可以正常的跑起来了,不知道是什么原因,渴望知道的大神可以告诉我一声,感激不尽。
程序非常简单,直接上源代码咯
# coding=utf8import reimport requestsfrom lxml import etreefrom multiprocessing.dummy import Pool as ThreadPoolimport sysreload(sys)sys.setdefaultencoding('utf-8')def getnewpage(url, total): nowpage = int(re.search('(\d+)', url, re.S).group(1)) urls = [] for i in range(nowpage, total + 1): link = re.sub('(\d+)', '%s' % i, url, re.S) urls.append(link) return urlsdef spider(url): html = requests.get(url) selector = etree.HTML(html.text) author = selector.xpath('//*[@id="content-left"]/div/div[1]/a[2]/@title') content = selector.xpath('//*[@id="content-left"]/div/div[2]/text()') vote = selector.xpath('//*[@id="content-left"]/div/div[3]/span/i/text()') length = len(author) for i in range(0, length): f.writelines('作者 : ' + author[i] + '\n') f.writelines('内容 :' + str(content[i]).replace('\n','') + '\n') f.writelines('支持 : ' + vote[i] + '\n\n')if __name__ == '__main__': f = open('info.txt', 'a') url = 'http:///text/page/1/' urls = getnewpage(url, 20) pool = ThreadPool(4) pool.map(spider,urls) f.close()如果其中有不懂得部分,可以依次参考我的前三篇文章。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
糗事百科怎么看附近的人?糗事百科查看附近的人方法介绍。糗事百科是一款十分好玩的娱乐软件,在糗事百科中你可以查看附近的人,邀请ta来一起逗逼搞笑,那么糗事百科
项目内容:用Python写的糗事百科的网络爬虫。使用方法:新建一个Bug.py文件,然后将代码复制到里面后,双击运行。程序功能:在命令提示行中浏览糗事百科。原理
糗事百科怎么签到?糗事百科签到方法介绍。糗事百科是一款给大家打来快乐的软件,在糗事百科中各式各样好玩有趣的段子,让你爆笑不断,在糗事百科中还有签到功能,签到
糗事百科怎么发小纸条?糗事百科发小纸条方法介绍。糗事百科是一款款娱乐爆笑软件,在糗事百科中有个小纸条的功能,法小纸条给小伙伴可以互相吐槽,那么糗事百科怎么发
糗事百科怎么发糗事?糗事百科发糗事方法。糗事百科是一款可以看很多糗事段子的娱乐平台,当然你也可以把自己身边的糗事发布出去,让更多人看到有有趣的事情,那么糗事