糗百Python爬虫1.1
来源:互联网 发布:java中的方法调用传参 编辑:程序博客网 时间:2024/05/16 17:56
页面内容在不断变化,如此程序不能正常运行,请自行修改正则表达式进行正确匹配!
# -*- coding:utf-8 -*-#--------------------------------------------------# 程序:糗事百科爬虫# 版本:1.1# 作者:执剑天涯# 日期:2016-08-12# 版本:Python 2.7.7# 操作:点击回车键,点击q键# 功能:输出一个糗百段子作者,内容,点赞数,q退出程序#--------------------------------------------------import urllibimport urllib2import repage = 1 #中间变量,糗百页数num = 1 #中间变量,每一页段子个数def getPageItems(page): url = 'http://www.qiushibaike.com/hot/page/' + str(page) #资源定位 user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' headers = { 'User-Agent' : user_agent } try: request = urllib2.Request(url,headers = headers) response = urllib2.urlopen(request)# print response.read() except urllib2.URLError, e: if hasattr(e,"code"): print e.code if hasattr(e,"reason"): print e.reason content = response.read().decode('utf-8') pattern = re.compile('\<h2\>(.*?)\<\/h2\>.*?class\=\"content\"\>(.*?)\<\/div\>.*?img\ssrc\=\"(.*?)\".*?stats\-vote\"\>.*?\>(.*?)\<',re.S) #正则表达式,匹配出文字段子内容 items = re.findall(pattern,content) #匹配出段子来 return itemswhile True: items = getPageItems(page) print u'第%d页\t本页段子数量:%d' %(page,len(items)) for item in items: print u'正在读取糗百,按回车查看新段子,按Q退出...' input = raw_input() if input == 'q': #若输入q,则停止程序 quit(0) haveImg = re.search('img',item[2]) if not haveImg: #找出不含图片的段子 replaceBR = re.compile('<br/>') #html换行符 content = re.sub(replaceBR,'\n',item[1]) #替换换行符号 print u'本页第%s个段子\t作者:%s\n内容:%s\n点赞:%s' %(num,item[0],content,item[3]) #打印段子 num += 1 #段子个数加1 num = 1 #段子个数初始化 page += 1 #页码加1
0 0
- 糗百Python爬虫1.1
- python小爬虫-糗百
- Python爬虫——糗百
- python爬虫-->爬虫基础
- [爬虫] Python爬虫技巧
- Python爬虫
- python 爬虫
- python 爬虫
- python 爬虫
- python爬虫
- Python爬虫
- Python爬虫
- python 爬虫
- Python爬虫
- python爬虫
- python 爬虫
- python 爬虫
- python爬虫
- AWK原理及命令和文件输入
- Android 增量更新完全解析
- android ButterKnife Zelezny 插件使用
- 资料总结连接
- 对spring控制反转以及依赖注入的理解
- 糗百Python爬虫1.1
- stm32f030串口(中断查询都一样)与flash读写一起使用时发生卡机现象
- K近邻算法
- 下列变量中,哪些变量的生存期和作用域是不一致的?
- 微信小程序教学视频
- android 中用NodeMedia直播的实现
- 文章标题
- 硬件知识学习
- 前端学习CSS网页布局篇(五)