前言
爬虫在工作生活中使用非常广泛,无论是论文数据准备还是市场调研还是工作工具等等都十分有用,爬取的目标大部分是网页或App,所以今天就从这两大类分别来进行介绍。
爬虫大纲:
1.网页爬取
对于网页来说,将其划分为了两种类别
- 服务端渲染
- 客户端渲染
2.App 爬取
对于 App 来说,我又针对接口的形式进行了四种类别的划分
-
普通接口
-
加密参数接口
-
加密内容接口
-
非常规协议接口
一、网页爬取
服务端渲染的意思就是页面的结果是由服务器渲染后返回的,有效信息包含在请求的 HTML 页面里面,比如猫眼电影这个站点。客户端渲染的意思就是页面的主要内容由 JavaScript 渲染而成,真实的数据是通过 Ajax 接口等形式获取的,比如淘宝、最右手机版等等站点。
服务端渲染的情况就比较简单了,用一些基本的 HTTP 请求库就可以实现爬取,如 urllib、urllib3、pycurl、hyper、requests、grab
等框架,其中应用最多的可能就是 requests 了。
对于客户端渲染,划分四个处理方法:
- 寻找 Ajax 接口,此种情形可以直接使用 Chrome/Firefox 的开发者工具直接查看 Ajax具体的请求方式、参数等内容,然后用 HTTP 请求库模拟即可,另外还可以通过设置代理抓包来查看接口,如 Fiddler/Charles。
- 模拟浏览器执行,此种情形适用于网页接口和逻辑较为复杂的情况,可以直接以可见即可爬的方式进行爬取,如可以使用Selenium、Splinter、Spynner、pyppeteer、PhantomJS、Splash、requests-html等来实现。
- 直接提取 JavaScript 数据,此种情形适用