爬虫的工作原理
一个理想的爬虫也许是这样工作的:
输入一个已知的页面,从这个初始的「种子页面」开始,获取「种子页面」上的链接并存储至「待爬取」列表,按照某种顺序依次爬取「待爬取」列表,将已爬取的链接转至「已爬取」列表…看起来在理想状态下,爬虫似乎可以一直工作,不断发送HTTP请求爬取互联网上的所有页面。
爬虫的本质是模拟浏览器发送HTTP请求
爬虫学习路径
针对爬虫的工作流程,即 发送请求–获得页面–解析页面–下载内容–储存内容
需要掌握的技能如下:
- 了解网页基础知识,即爬虫工作的原理,发送一个HTTP请求时发生了什么
- HTML语言的基础()
- 网站发包和收包的概念(POST、GET)
- js基础用于理解动态网页
- Python 基础
list
,dict
:用于序列化爬取的东西if
:判断爬取过程中遇到的问题,如 str.find() 返回-1的情况while
:循环重复爬取过程- 文件读写操作:保存爬取的内容
- 切片:对爬取内容进行分割生成
- 解析页面时用到的分析语言,字符编码处理,不同网站编码格式不同
- 正则表达式
- XPATH:高效的分析语言,掌握后基本不用正则
- BeautifulSoup:据说是网页解析神器
- 熟悉Python适用于爬虫的模块
urllib
urllib2
(Python3 中没有urllib2
了,提供urllib
和http
两个module)requests
:可替代以上两个模块,让HTTP服务人类,服用方法
- 学习一种框架
- Scrapy
- 学习处理动态页面
- selenium
- phantomJS
- 与反爬虫策略验证码作斗争
- 数据库
- mysql
- mongodb
- sqllite
- 数据分析,分析爬下来的数据
- Numpy
- Pandas