编写爬取糗事百科信息爬虫代码学习笔记
2018-01-26 21:02
141 查看
前言
学习python3已经有一段时间了,本着趁自己还记得学过什么的原则,特意把这段时间所学所悟记录下来。就从利用python3编写糗事百科爬虫开始写起,在此感谢静觅博主的python爬虫学习系列教程,指引我学习编写。本文也是根据其python2.x的教程再加上个人对python3学习的理解也写。
一、
就本人目前学习进度而言,编写爬虫代码需要import三个模块。值得一提的是python3与python2有比较大的区别,一部分体现在模块上(这个我以后也会另开一贴作为学习记录,比较两个版本之间出现变化的地方)。现在先就要用到的模块或者方法出现的变化作比较
二、
直接贴上关键代码
大体思路:
1.分析目标网页url需要的元素
2.确定是否需要编写headers骗取服务器
3.爬取一整页内容(使用request,response)
4.编写正则表达式(关键)
在此推荐大家两个网站deerchao的正则表达式30分钟入门教程和正则表达式在线测试工具-站长工具,
一个用于学习,一个用于对自己编写的正则进行测试
三、
第一次认真写博客,其实也不知道自己写什么好,就先写到这么多吧,以后想到什么再更新,keep coding !
完整代码上传到了github:https://github.com/callMeBin2217/python3_Spider ,有兴趣的可以下载来看看,或者和我交流也可以。小小小小小小白求轻喷...
学习python3已经有一段时间了,本着趁自己还记得学过什么的原则,特意把这段时间所学所悟记录下来。就从利用python3编写糗事百科爬虫开始写起,在此感谢静觅博主的python爬虫学习系列教程,指引我学习编写。本文也是根据其python2.x的教程再加上个人对python3学习的理解也写。
一、
就本人目前学习进度而言,编写爬虫代码需要import三个模块。值得一提的是python3与python2有比较大的区别,一部分体现在模块上(这个我以后也会另开一贴作为学习记录,比较两个版本之间出现变化的地方)。现在先就要用到的模块或者方法出现的变化作比较
python3 | python2 |
urllib.request | urllib2 |
直接贴上关键代码
#抓取嗅事百科(一页内容) import urllib import urllib.request import re page = 1 url = r'https://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 = urllib.request.Request(url,headers=headers) response = urllib.request.urlopen(request) content = response.read().decode('utf-8') pattern = re.compile(r'h2>(.*?)</h.*?<div.*?<span>(.*?)</.*?>',re.S|re.M) items = re.findall(pattern,content) pageLibrary=[] for item in items: pageLibrary.append([item[0].strip(),item[1].strip()]) print(item[0].strip(),item[1].strip()) #print(pageLibrary) except urllib.request.URLError as e: if hasattr(e,'code'): print(e.code) if hasattr(e,'reason'): print(e.reason)
大体思路:
1.分析目标网页url需要的元素
2.确定是否需要编写headers骗取服务器
3.爬取一整页内容(使用request,response)
4.编写正则表达式(关键)
在此推荐大家两个网站deerchao的正则表达式30分钟入门教程和正则表达式在线测试工具-站长工具,
一个用于学习,一个用于对自己编写的正则进行测试
三、
第一次认真写博客,其实也不知道自己写什么好,就先写到这么多吧,以后想到什么再更新,keep coding !
完整代码上传到了github:https://github.com/callMeBin2217/python3_Spider ,有兴趣的可以下载来看看,或者和我交流也可以。小小小小小小白求轻喷...
相关文章推荐
- python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
- 大数据学习笔记:编写脚本分发配置,数据分布,以及使用代码打印调试信息
- Spark学习笔记04:案例代码编写
- 编写高质量代码、学习笔记——Javascript篇
- iQQ 学习笔记3 :编写代码打包Ant脚本
- Android(java)学习笔记113:Android编写代码调用Vibrator震动功能(Bug:按下按钮button始终没有震动)
- [imx6q][android]学习笔记-修改android代码里的分区信息
- 学习笔记------------------对Action中所有方法进行输入校验和对指定方法输入校验(手工编写代码和xml方式)
- 【极客学院】-python学习笔记-3-单线程爬虫 (request安装遇到问题及解决,应用requests提取信息)
- 【极客学院】-python学习笔记-4-单线程爬虫 (提交表单抓取信息,实战练习)
- javascript 学习笔记(六)浏览器类型及版本信息检测代码
- Python编写网页爬虫爬取oj上的代码信息
- 编写高质量C#代码学习笔记(2)
- 我的QT学习笔记-01-HelloWorld纯代码编写程序
- 大数据学习笔记:编写Mapreduce代码并运行
- 《编写高质量代码改善Java程序的151个建议》学习笔记 第6章 枚举和注解
- Cocos2d-x精灵学习笔记 分类: cocos2d代码编写 2015-07-27 17:17 5人阅读 评论(0) 收藏
- QT学习笔记之QT代码编写控件不显示的问题
- AJAX 学习笔记[二] 我编写的AJAX 测试代码示例