mblog

Python爬虫学习笔记6:Ajax数据爬取

五迷三道 提交于 2020-05-08 03:46:05
学习参考:Python3网络爬虫开发实战 问题:requests抓取的页面信息和浏览器中看到的不一样。 原因:requests获取的都是原始的HTML文档,浏览器中的页面很多都是经过javascript数据处理后的结果,这些数据可能通过AJax加载的,也可能是通过其他特定算法计算得到的 解决:对于通过Ajax加载的,叫异步加载,这种可以在web开发上做到前后端分离,降低服务器直接渲染页面带来的压力,如果遇到requests无法获取有效数据,需要进一步分析网页后台向接口发送的Ajax请求,然后用requests来模拟Ajax请求,就可以成功获取了 6.1 什么是 Ajax Ajax是利用Javascript在保证页面不被刷新、页面链接不改变的情况下与服务器交换数据并更新部分网页的技术。 2. 基本原理 发送请求、解析内容、渲染网页 6.2 Ajax 分析方法 1. 查看请求 jax其实有其特殊的请求类型,它叫作 xhr ,Request Headers中有一个信息为 X-Requested-With:XMLHt甲Request,这就标记了此请求是 Ajax请求 在response里面可以找到真实的数据。 2. 过滤请求 6.3 Ajax 结果提取 1.分析请求 继续下拉网页,会发现很多xhr信息出来,找到其中两个 点击第一个,可以发现,这是一个 GET类型的请求,请求链接为