Python 制作糗事百科爬虫实例
2019/7/13 23:23:51
本文主要是介绍Python 制作糗事百科爬虫实例,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
早上起来闲来无事做,莫名其妙的就弹出了糗事百科的段子,转念一想既然你送上门来,那我就写个爬虫到你网站上爬一爬吧,一来当做练练手,二来也算找点乐子。
其实这两天也正在接触数据库的内容,可以将爬取下来的数据保存在数据库中,以待以后的利用。好了,废话不多说了,先来看看程序爬取的数据结果
值得一提的是,我在程序中想一下子爬取糗事百科 30 页的内容,但是出现了连接错误,当我把页数降到 20 页的时候,程序就可以正常的跑起来了,不知道是什么原因,渴望知道的大神可以告诉我一声,感激不尽。
程序非常简单,直接上源代码咯
# coding=utf8 import re import requests from lxml import etree from multiprocessing.dummy import Pool as ThreadPool import sys reload(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 urls def 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://www.qiushibaike.com/text/page/1/' urls = getnewpage(url, 20) pool = ThreadPool(4) pool.map(spider,urls) f.close()
如果其中有不懂得部分,可以依次参考我的前三篇文章。
这篇关于Python 制作糗事百科爬虫实例的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python