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 相关文章推荐
浅谈python for循环的巧妙运用(迭代、列表生成式)
Sep 26 Python
分析python切片原理和方法
Dec 19 Python
Python反射的用法实例分析
Feb 11 Python
python实现树形打印目录结构
Mar 29 Python
不到40行代码用Python实现一个简单的推荐系统
May 10 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
Oct 14 Python
Python实现的北京积分落户数据分析示例
Mar 27 Python
python设置表格边框的具体方法
Jul 17 Python
python 解决pycharm运行py文件只有unittest选项的问题
Sep 01 Python
pytorch损失反向传播后梯度为none的问题
May 12 Python
Python 居然可以在 Excel 中画画你知道吗
Feb 15 Python
使用Django框架创建项目
Jun 10 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打开远程文件的方法和风险及解决方法
2013/11/12 PHP
jquery获取多个checkbox的值异步提交给php的方法
2015/06/24 PHP
php实现背景图上添加圆形logo图标的方法
2016/11/17 PHP
thinkPHP简单调用函数与类库的方法
2017/03/15 PHP
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
2016/09/21 Javascript
面试常见的js算法题
2017/03/23 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
详解tween.js 中文使用指南
2018/01/05 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
JavaScript类型相关的常用操作总结
2019/02/14 Javascript
Nodejs中使用puppeteer控制浏览器中视频播放功能
2019/08/26 NodeJs
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
原生js实现随机点名功能
2019/11/05 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
[36:20]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.17
2020/12/18 DOTA
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
详解Python之数据序列化(json、pickle、shelve)
2017/03/30 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
绘画专业自荐信范文
2014/02/23 职场文书
家长会演讲稿
2014/04/26 职场文书
医院义诊活动总结
2014/07/04 职场文书
物业消防安全责任书
2014/07/23 职场文书
市场营销工作计划书
2014/09/15 职场文书
会议室管理制度范本
2015/08/06 职场文书
导游词之井冈山
2019/11/20 职场文书
Python一些基本的图像操作和处理总结
2021/06/23 Python
mysql事务对效率的影响分析总结
2021/10/24 MySQL
vue实现在data里引入相对路径
2022/06/05 Vue.js