Python3网络爬虫开发实战
Search…
Introduction
0-目录
0.0-前言
0.1-序一
0.3-序二
1-开发环境配置
1.1-Python3的安装
1.2-请求库的安装
1.3-解析库的安装
1.4-数据库的安装
1.5-存储库的安装
1.6-Web库的安装
1.7-App爬取相关库的安装
1.8-爬虫框架的安装
1.9-部署相关库的安装
2-爬虫基础
2.1-HTTP基本原理
2.2-Web网页基础
2.3-爬虫基本原理
2.4-会话和Cookies
2.5-代理基本原理
3-基本库的使用
3.1-使用urllib
3.2-使用requests
3.3-正则表达式
3.4-爬取猫眼电影排行
4-解析库的使用
4.1-XPath的使用
4.2-BeautifulSoup的使用
4.3-pyquery的使用
5-数据存储
5.1-文件存储
5.2-关系型数据库存储
5.3-非关系型数据库存储
6-Ajax数据爬取
6.1-什么是Ajax
6.2-Ajax分析方法
6.3-Ajax结果提取
6.4-分析Ajax爬取今日头条街拍美图
7-动态渲染页面抓取
7.1-Selenium的使用
7.2-Splash的使用
7.3-Splash负载均衡配置
7.4-使用Selenium爬取淘宝商品
8-验证码的识别
8.1-图形验证码的识别
8.2-极验滑动验证码识别
8.3-点触验证码识别
8.4-微博宫格验证码识别
9-代理的使用
9.1-代理的设置
9.2-代理池的维护
9.3-付费代理的使用
9.4-ADSL代理的使用
9.5-使用代理爬取微信公众号文章
10-模拟登录
10.1-模拟登录并爬取GitHub
10.2-Cookies池的搭建
11-APP的爬取
11.1-Charles的使用
11.2-mitmproxy的使用
11.3-mitmdump爬取“得到”App电子书信息
11.4-Appium的使用
11.5-Appium爬取微信朋友圈
11.6-Appium+mitmdump爬取京东商品评论
12-pyspider框架的使用
12.1-pyspider框架介绍
12.2-pyspider基本使用
12.3-pyspider用法详解
13-Scrapy框架的使用
13.1-Scrapy框架介绍
13.2-Scrapy入门
13.3-Selector的用法
13.4-Spider的用法
13.5-Downloader Middleware的用法
13.6-Spider Middleware的用法
13.7-Item Pipeline的用法
13.8-Scrapy对接Selenium
13.9-Scrapy对接Splash
13.10-Scrapy通用爬虫
13.11-Scrapyrt的使用
13.12-Scrapy对接Docker
13.13-Scrapy爬取新浪微博
14-分布式爬虫
14.1-分布式爬虫理念
14.2-Scrapy-Redis源码解析
14.3-Scrapy分布式实现
14.4-Bloom Filter的对接
15-分布式爬虫的部署
15.1-Scrapyd分布式部署
15.2-Scrapyd-Client的使用
15.3-Scrapyd对接Docker
15.4-Scrapyd批量部署
15.5-Gerapy分布式管理
Powered By
GitBook
6-Ajax数据爬取
有时候我们在用 requests 抓取页面的时候,得到的结果可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,但是使用 requests 得到的结果并没有。这是因为 requests 获取的都是原始的 HTML 文档,而浏览器中的页面则是经过 JavaScript 处理数据后生成的结果,这些数据的来源有多种,可能是通过 Ajax 加载的,可能是包含在 HTML 文档中的,也可能是经过 JavaScript 和特定算法计算后生成的。
对于第一种情况,数据加载是一种异步加载方式,原始的页面最初不会包含某些数据,原始页面加载完后,会再向服务器请求某个接口获取数据,然后数据才被处理从而呈现到网页上,这其实就是发送了一个 Ajax 请求。
照 Web 发展的趋势来看,这种形式的页面越来越多。网页的原始 HTML 文档不会包含任何数据,数据都是通过 Ajax 统一加载后再呈现出来的,这样在 Web 开发上可以做到前后端分离,而且降低服务器直接渲染页面带来的压力。
所以如果遇到这样的页面,直接利用 requests 等库来抓取原始页面,是无法获取到有效数据的,这时需要分析网页后台向接口发送的 Ajax 请求,如果可以用 requests 来模拟 Ajax 请求,那么就可以成功抓取了。
所以,本章我们的主要目的是了解什么是 Ajax 以及如何去分析和抓取 Ajax 请求。
Previous
5.3-非关系型数据库存储
Next
6.1-什么是Ajax
Last modified
3yr ago
Copy link