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 break语句详解
Mar 11 Python
Python实现拼接多张图片的方法
Dec 01 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
Jun 28 Python
Windows下安装python MySQLdb遇到的问题及解决方法
Mar 16 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
Sep 20 Python
python 限制函数调用次数的实例讲解
Apr 21 Python
python十进制和二进制的转换方法(含浮点数)
Jul 07 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
May 15 Python
简单分析python的类变量、实例变量
Aug 23 Python
python创建ArcGIS shape文件的实现
Dec 06 Python
Python如何把字典写入到CSV文件的方法示例
Aug 23 Python
浅谈anaconda python 版本对应关系
Oct 07 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去除重复字的实现代码
2011/09/16 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
2015/12/28 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
2014/10/16 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
jQuery实现的动态伸缩导航菜单实例
2015/05/07 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
JS实现为排序好的字符串找出重复行的方法
2016/03/02 Javascript
JavaScript中的ajax功能的概念和示例详解
2016/10/17 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
2017/02/13 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
详解node+express+ejs+bootstrap构建项目
2017/09/27 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
vue 实现路由跳转时更改页面title
2019/11/05 Javascript
压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)
2020/02/03 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
2020/08/10 Javascript
Python3写入文件常用方法实例分析
2015/05/22 Python
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
python实现报表自动化详解
2017/11/16 Python
python实现超市扫码仪计费
2018/05/30 Python
python获取栅格点和面值的实现
2020/03/10 Python
python中pickle模块浅析
2020/12/29 Python
CSS3 calc()会计算属性详解
2018/02/27 HTML / CSS
包装类的功能、种类、常用方法
2012/01/27 面试题
二年级语文下册复习计划
2015/01/19 职场文书
销售员岗位职责
2015/02/10 职场文书
学校节水倡议书
2015/04/29 职场文书
单身证明范本
2015/06/15 职场文书
《风筝》教学反思
2016/02/23 职场文书
【海涛教你打DOTA】虚空假面第一视角骨弓3房29杀
2022/04/01 DOTA