小白入门必读
作为零基础小白,大体上可分为三个阶段去实现。
第一阶段是入门,掌握必备基础知识,比如Python基础、网络请求的基本原理等;
第二阶段是模仿,跟着别人的爬虫代码学,弄懂每一行代码,熟悉主流的爬虫工具,
第三阶段是自己动手,到了这个阶段你开始有自己的解题思路了,可以独立设计爬虫系统。
爬虫涉及的技术包括但不限于熟练一门编程语言(这里以 Python 为例) HTML 知识、HTTP 协议的基本知识、正则表达式、数据库知识,常用抓包工具的使用、爬虫框架的使用、涉及到大规模爬虫,还需要了解分布式的概念、消息队列、常用的数据结构和算法、缓存,甚至还包括机器学习的应用,大规模的系统背后都是靠很多技术来支撑的。数据分析、挖掘、甚至是机器学习都离不开数据,而数据很多时候需要通过爬虫来获取,因此,即使把爬虫作为一门专业来学也是有很大前途的。
那么是不是一定要把上面的知识全学完了才可以开始写爬虫吗?当然不是,学习是一辈子的事,只要你会写 Python 代码了,就直接上手爬虫,好比学车,只要能开动了就上路吧,写代码可比开车安全多了。
用 Python 写爬虫
关于 HTTP 的知识
爬虫基本原理就是通过网络请求从远程服务器下载数据的过程,而这个网络请求背后的技术就是基于 HTTP 协议。作为入门爬虫来说,你需要了解 HTTP协议的基本原理,虽然 HTTP 规范用一本书都写不完,但深入的内容可以放以后慢慢去看,理论与实践相结合。
网络请求框架都是对 HTTP 协议的实现,比如著名的网络请求库 Requests 就是一个模拟浏览器发送 HTTP 请求的网络库。了解 HTTP 协议之后,你就可以专门有针对性的学习和网络相关的模块了,比如 Python 自带有 urllib、urllib2(Python3中的urllib),httplib,Cookie等内容,当然你可以直接跳过这些,直接学习 Requests 怎么用,前提是你熟悉了 HTTP协议的基本内容,数据爬下来,大部分情况是 HTML 文本,也有少数是基于 XML 格式或者 Json 格式的数据,要想正确处理这些数据,你要熟悉每种数据类型的解决方案,比如 JSON 数据可以直接使用 Python自带的模块 json,对于 HTML 数据,可以使用 BeautifulSoup、lxml 等库去处理,对于 xml 数据,除了可以使用 untangle、xmltodict 等第三方库。此外,在我的公众号也总结了好几篇爬虫入门与实战的文章
http://t.cn/RQrWESe , 可以当做练手
爬虫工具
爬虫工具里面,学会使用 Chrome 或者 FireFox 浏览器去审查元素,跟踪请求信息等等,现在大部分网站有配有APP和手机浏览器访问的地址,优先使用这些接口,相对更容易。还有 Fiddler 等代理工具的使用。