python编写简单爬虫资料汇总


Posted in Python onMarch 22, 2016

爬虫真是一件有意思的事儿啊,之前写过爬虫,用的是urllib2、BeautifulSoup实现简单爬虫,scrapy也有实现过。最近想更好的学习爬虫,那么就尽可能的做记录吧。这篇博客就我今天的一个学习过程写写吧。

一 正则表达式

正则表达式是一个很强大的工具了,众多的语法规则,我在爬虫中常用的有:

. 匹配任意字符(换行符除外)
* 匹配前一个字符0或无限次
? 匹配前一个字符0或1次
.* 贪心算法
.*? 非贪心算法
(.*?) 将匹配到的括号中的结果输出
\d 匹配数字
re.S 使得.可以匹配换行符

常用的方法有:find_all(),search(),sub()

对以上语法方法做以练习,代码见:https://github.com/Ben0825/Crawler/blob/master/re_test.py

二 urllib和urllib2

urllib和urllib2库是学习Python爬虫最基本的库,利用该库,我们可以得到网页的内容,同时,可以结合正则对这些内容提取分析,得到真正想要的结果。

在此将urllib和urllib2结合正则爬取了糗事百科中的作者点赞数内容。

代码见:https://github.com/Ben0825/Crawler/blob/master/qiubai_test.py

三 BeautifulSoup

BeautifulSoup是Python的一个库,最主要的功能是从网页抓取数据,官方介绍是这样的:

Beautiful Soup 提供一些简单的、python 式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。

Beautiful Soup 自动将输入文档转换为 Unicode 编码,输出文档转换为 utf-8 编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup 就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。

Beautiful Soup 已成为和 lxml、html6lib 一样出色的 python 解释器,为用户灵活地提供不同的解析策略或强劲的速度。

首先:爬取百度百科Python词条下相关的100个页面,爬取的页面值自己设定。

代码详见:https://github.com/Ben0825/Crawler/tree/master/python_baike_Spider

代码运行:

python编写简单爬虫资料汇总

 python编写简单爬虫资料汇总

巩固篇,依据豆瓣中图书的标签得到一个书单,同样使用BeautifulSoup。

代码详见:https://github.com/Ben0825/Crawler/blob/master/doubanTag.py

运行结果:

python编写简单爬虫资料汇总

 以上就是今天学习的一些内容,爬虫真的很有意思啊,明天继续学scrapy!

Python 相关文章推荐
linux环境下安装pyramid和新建项目的步骤
Nov 27 Python
简单了解Python下用于监视文件系统的pyinotify包
Nov 13 Python
python中列表和元组的区别
Dec 18 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
Dec 19 Python
教你使用python画一朵花送女朋友
Mar 29 Python
python3读取csv和xlsx文件的实例
Jun 22 Python
Python基础学习之类与实例基本用法与注意事项详解
Jun 17 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
Aug 29 Python
关于Django Models CharField 参数说明
Mar 31 Python
Python numpy矩阵处理运算工具用法汇总
Jul 13 Python
python matplotlib绘制三维图的示例
Sep 24 Python
Python进行特征提取的示例代码
Oct 15 Python
使用Nginx+uWsgi实现Python的Django框架站点动静分离
Mar 21 #Python
Python中的条件判断语句与循环语句用法小结
Mar 21 #Python
举例讲解Python中的迭代器、生成器与列表解析用法
Mar 20 #Python
深入解析Python中函数的参数与作用域
Mar 20 #Python
总结Python编程中函数的使用要点
Mar 20 #Python
两个命令把 Vim 打造成 Python IDE的方法
Mar 20 #Python
Python中列表、字典、元组数据结构的简单学习笔记
Mar 20 #Python
You might like
PHP下escape解码函数的实现方法
2010/08/08 PHP
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
移动端 一个简单易懂的弹出框
2016/07/06 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
2019/02/19 jQuery
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
[47:50]Secret vs VP 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python比较2个时间大小的实现方法
2018/04/10 Python
对python内置map和six.moves.map的区别详解
2018/12/19 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
Python logging设置和logger解析
2019/08/28 Python
Python简易计算器制作方法代码详解
2019/10/31 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
纯CSS3实现移动端展开和收起效果的示例代码
2020/04/26 HTML / CSS
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
历史系毕业生自荐信
2013/10/28 职场文书
专科应届生求职信
2013/11/24 职场文书
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
捐资助学倡议书
2014/04/15 职场文书
关于感恩的演讲稿200字
2014/08/26 职场文书
三行辞职书范文
2015/02/26 职场文书
幼儿园家长工作总结2015
2015/04/25 职场文书
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android