爬虫的工作原理

一个理想的爬虫也许是这样工作的:

输入一个已知的页面,从这个初始的「种子页面」开始,获取「种子页面」上的链接并存储至「待爬取」列表,按照某种顺序依次爬取「待爬取」列表,将已爬取的链接转至「已爬取」列表…看起来在理想状态下,爬虫似乎可以一直工作,不断发送HTTP请求爬取互联网上的所有页面。

爬虫的本质是模拟浏览器发送HTTP请求

爬虫学习路径

摘自知乎:如何入门Python爬虫-高野良的回答

针对爬虫的工作流程,即 发送请求获得页面解析页面下载内容储存内容

需要掌握的技能如下:

  • 了解网页基础知识,即爬虫工作的原理,发送一个HTTP请求时发生了什么
    • HTML语言的基础(
    • 网站发包和收包的概念(POST、GET)
    • js基础用于理解动态网页
  • Python 基础
    • list , dict:用于序列化爬取的东西
    • if:判断爬取过程中遇到的问题,如 str.find() 返回-1的情况
    • while:循环重复爬取过程
    • 文件读写操作:保存爬取的内容
    • 切片:对爬取内容进行分割生成
  • 解析页面时用到的分析语言,字符编码处理,不同网站编码格式不同
  • 熟悉Python适用于爬虫的模块
    • urllib
    • urllib2 (Python3 中没有urllib2 了,提供 urllibhttp 两个module)
    • requests:可替代以上两个模块,让HTTP服务人类,服用方法
  • 学习一种框架
    • Scrapy
  • 学习处理动态页面
    • selenium
    • phantomJS
  • 与反爬虫策略验证码作斗争
  • 数据库
    • mysql
    • mongodb
    • sqllite
  • 数据分析,分析爬下来的数据
    • Numpy
    • Pandas