栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python爬虫学习44

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python爬虫学习44

python爬虫学习44

目录
    • python爬虫学习44
      • Ajax数据爬取
        • 1. 什么是Ajax
        • 2.分析Ajax

Ajax数据爬取

有时我们使用request抓取页面时,经常出现我们获取到的内容和我们在浏览去实际看到的内容不一致的情况,这是由于我们通过requests得到的结果都是原始的HTML文档,而浏览器的页面是经过JavaScript数据处理之后的结果,这些数据有多种来源:

  • 通过Ajax加载
  • 包含在HTML文档中
  • 经过JavaScript和特定算法处理后生成

我们今天要处理的问题就是第一种来源的数据,通过Ajax加载的数据通过一种异步的方式进行加载,原始页面不会包含某些数据,直到原始页面加载完成后,会再向服务器请求某个接口获得数据,然后数据才会经过处理呈现出我们所见的样子,这其实就是发送了一个Ajax请求。

在这种情况下,直接使用requests等库进行数据抓取就无法获得我们想要的数据。就需要我们分析网页的后台向接口发送Ajax请求。

1. 什么是Ajax

Ajax,全称Asynchronous JavaScript and XML(异步的JavaScript 和 XML),这是一种利用JavaScript在保证页面不被刷新、页面链接不改变的前提下与服务器交换数据并更新部分网页数据的技术。

例如,我们在网页上浏览微博时,向下浏览的时候会出现,下滑出现更多的选项,当我们下滑进行浏览时,此时网页没有变化,但是页面上却出现了新的内容,这就是一种Ajax加载的过程。

2.分析Ajax

进入微博后按下F12键,打开开发者页面,进行检阅:
可以看许多条请求,找到类型为xhr的请求,即为一条Ajax请求

首先找到一个Ajax类型的请求,查看其详细信息

可以看到最后一行,一个x-requested-with: XMLHttpRequest标记

preview标签中存储了响应的内容:

response标签,储存了法务其返回的原始数据:

正是通过这些返回的内容,从而实现了网页的渲染,让我们看到了我们现在看到的网页的样子。

今日结束,明日继续。。。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/934568.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号