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使用xmlrpc实例讲解
Dec 17 Python
Python的垃圾回收机制深入分析
Jul 16 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
Aug 28 Python
Pyhton中单行和多行注释的使用方法及规范
Oct 11 Python
python 用opencv调用训练好的模型进行识别的方法
Dec 07 Python
使用Django2快速开发Web项目的详细步骤
Jan 06 Python
详解Python 调用C# dll库最简方法
Jun 20 Python
pyQt5实时刷新界面的示例
Jun 25 Python
Windows下Sqlmap环境安装教程详解
Aug 04 Python
利用Python实现朋友圈中的九宫格图片效果
Sep 03 Python
python 带时区的日期格式化操作
Oct 23 Python
基于Python 函数和方法的区别说明
Mar 24 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
关于使用coreseek并为其做分页的介绍
2013/06/21 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
2014/05/15 PHP
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
PHP输出日历表代码实例
2015/03/27 PHP
PHP常用函数之获取汉字首字母功能示例
2019/10/21 PHP
爱恋千雪-US-AscII加密解密工具(网页加密)下载
2007/06/06 Javascript
js自定义事件及事件交互原理概述(二)
2013/02/01 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
jQuery使用addClass()方法给元素添加多个class样式
2015/03/26 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
2016/02/25 Javascript
JS获取地址栏参数的两种方法(简单实用)
2016/06/14 Javascript
echart简介_动力节点Java学院整理
2017/08/11 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
vue v-model动态生成详解
2018/06/30 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
2020/09/22 Javascript
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
python3.7.0的安装步骤
2018/08/27 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
2020/10/21 Python
计算机系毕业生推荐信
2013/11/06 职场文书
长辈证婚人证婚词
2014/01/09 职场文书
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
学习十八大报告感言
2014/02/04 职场文书
会计学自我鉴定
2014/02/06 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
上学路上观后感
2015/06/16 职场文书
驻村工作简报
2015/07/20 职场文书
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
2022/06/14 Golang