Ajax数据爬取

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Yk_0311/article/details/82493336

前言

来源:《python3网络爬虫开发实战》
有时候我们在用requests抓取页面的时候,得到的结果可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,但是使用requests得到的结果并没有。这是因为requests获取的都是原始的HTML文档,而浏览器中的页面则是经过JavaScript处理数据后生成的结果,这些数据的来源有多种,
1.可能是通过Ajax加载的
2.可能是包含在HTML文档中的
3.也可能是经过JavaScript和特定算法计算后生成的。

什么是Ajax

Ajax,异步的JavaScript和XML。它不是一门编程语言,而是利用JavaScript在保证页面不刷新,页面链接不改变的情况下与服务器交换数据并更新部分网页的技术

比如百度搜索,在搜索框输入几个关键词,会发现下面会有一系列的文字
这里写图片描述

还有微博下拉会出现正在加载中,请稍后
这里写图片描述

这些都是Ajax加载的过程

基本原理

1.发送请求
2.解析内容
3.渲染网页

我们就是利用Python来模拟这个过程,我们会使用requests库来发送请求,然后再将返回内容进行解析。

Ajax分析方法

举个例子,使用谷歌浏览器
url=WEIBO_SECOND_PROFILE_WEIBO”>https://m.weibo.cn/p/2304131618051664-_WEIBO_SECOND_PROFILE_WEIBO
打开浏览器开发工具
到Networkk选项卡,使用XHR过滤工具
Ajax有特殊的请求类型,叫做xhr
这里写图片描述

点击一个xhr条目(Type=xhr),点击preview
这里写图片描述

可以看到相应内容是JSON格式的,可以使用requests的json方法直接将内容解析为JSON;

将微博页面往下拉,可以看到更多的页面被刷出,而且Ajax请求也一个个出来,这样子我们就可以捕获请求了
这里写图片描述

我们用requests来模拟请求,返回JSON格式的内容,然后对内容进行解析。

猜你喜欢

转载自blog.csdn.net/Yk_0311/article/details/82493336