未加星标

Python 制作糗事百科爬虫实例

字体大小 | |
[开发(python) 所属分类 开发(python) | 发布者 店小二03 | 时间 | 作者 红领巾 ] 0人收藏点击收藏

早上起来闲来无事做,莫名其妙的就弹出了糗事百科的段子,转念一想既然你送上门来,那我就写个爬虫到你网站上爬一爬吧,一来当做练练手,二来也算找点乐子。

其实这两天也正在接触数据库的内容,可以将爬取下来的数据保存在数据库中,以待以后的利用。好了,废话不多说了,先来看看程序爬取的数据结果

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][email protected]')
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)相关术语:python基础教程 python多线程 web开发工程师 软件开发工程师 软件开发流程

主题: HTMLPython数据其实数据库
分页:12
转载请注明
本文标题:Python 制作糗事百科爬虫实例
本站链接:http://www.codesec.net/view/484517.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 开发(python) | 评论(0) | 阅读(41)