糗事百科
来源:互联网 发布:mac java version 编辑:程序博客网 时间:2024/04/28 15:54
http://www.qiushibaike.com/
这是本次爬取的网址,任务是需要爬取姓名、段子内容和评论人数。
http://www.qiushibaike.com/8hr/page/3/?s=4940212
http://www.qiushibaike.com/8hr/page/4/?s=4940212
观察每页网址发现,变量只有page后的数字,故url可写为如下:
url = 'http://www.qiushibaike.com/8hr/page/'+str(page)打开页面源代码,可以看出所需内容并没有在一个小范围内,比较分散,便想到用正则将内容匹配出来,进行包括换行符在内的匹配需要用到re.S,当然,在具体操作中还需要对内容进行修改,比如去掉没用的代码等等,以下为完整代码:
#coding=utf-8import reimport urllibimport urllib2for page in range(1,36): url = 'http://www.qiushibaike.com/8hr/page/'+str(page) user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:49.0)' headers = {'User-Agent':user_agent} qq = open("QSBK.txt", "a+") try: request = urllib2.Request(url,headers=headers) response = urllib2.urlopen(request) content = response.read().decode('utf-8') pattern = re.compile(r'<div class="author clearfix">.*?href.*?<img src.*?title=.*?<h2>(.*?)</h2>.*?<div class="content">(.*?)</div>.*?<i class="number">(.*?)</i>',re.S) items = re.finditer(pattern,content) for item in items: i = re.sub(r'<span>', '', item.group(2)) i = re.sub(r'<br/>', '', i) i = re.sub(r'</span>','',i) a = item.group(1).replace('\n','') b = i.replace('\n','') c = item.group(3).replace('\n','') print a+'|'+b+'|'+c qq.write(a.encode('utf-8')+'|'+b.encode('utf-8')+'|'+c.encode('utf-8')+'\n') except urllib2.URLError,e: if hasattr(e,"code"): print e.code if hasattr(e,"reason"): print e.reasonqq.close()
0 0
- 糗事百科
- 糗事百科
- 糗事百科
- 糗事百科
- 糗事百科
- 糗事百科1
- 糗事百科2
- 糗事百科爬虫
- 糗事百科爬虫
- Python3抓取糗事百科
- python爬虫糗事百科
- 实战抓取糗事百科
- Python抓取糗事百科
- 糗事百科DEMO
- 糗事百科爬虫改进
- UI_糗事百科页面
- 糗事百科交互式爬虫
- 爬虫实战--糗事百科
- 20 个顶尖的 Python 机器学习开源项目
- C#点滴积累
- lua5.1字节码文件分析
- 基于android7.0流程分析anr产生原因
- 树梅派应用6:树莓派下编译RTL8723BU无线蓝牙网卡
- 糗事百科
- C语言中关键字const
- Thread中的interrupt(),interrupted(),isInterrupted()方法的详解
- Reflux helloworld
- arduino和MG111二氧化碳传感器采集co2
- 通过预设在nvram里的数据实现lcm兼容的方案
- 学生管理系统
- 基于欧几里德距离的K最近邻(KNN)算法的实现(JAVA版)
- 问题 A: C语言习题 计算该日在本年中是第几天