爬虫中怎么判断一个网页是否包含ajax请求

1、前言

      在用爬虫抓取数据的时候,如果一个网页包含ajax请求,由于数据时动态加载的,直接根据网址是不能获取到想要的数据。因此,在爬虫需要首先判断一个网页是否包含ajax请求数据。

2、ajax请求

2.1 什么是ajax请求

        AJAX = Asynchronous JavaScript And XML.(翻译过来就是异步Javascript 和XML)

AJAX 并非编程语言。

AJAX 仅仅组合了:

  • 浏览器内建的 XMLHttpRequest 对象(从 web 服务器请求数据)
  • JavaScript 和 HTML DOM(显示或使用数据)

Ajax 是一个令人误导的名称。Ajax 应用程序可能使用 XML 来传输数据,但将数据作为纯文本或 JSON 文本传输也同样常见。

Ajax 允许通过与场景后面的 Web 服务器交换数据来异步更新网页。这意味着可以更新网页的部分,而不需要重新加载整个页面。

ajax网页具有如下特点:

  • 不刷新页面更新网页
  • 在页面加载后从服务器请求数据
  • 在页面加载后从服务器接收数据
  • 在后台向服务器发送数据

2.1 ajax实现原理

        ajax实现原理如下图所示:

  1. 网页中发生一个事件(页面加载、按钮点击)
  2. 由 JavaScript 创建 XMLHttpRequest 对象
  3. XMLHttpRequest 对象向 web 服务器发送请求
  4. 服务器处理该请求
  5. 服务器将响应发送回网页(一般返回内容为XML或json数据)
  6. 由 JavaScript 读取响应(ajax引擎先将返回的数据转为javascript)
  7. 由 JavaScript 执行正确的动作(比如更新页面)

3、怎么判断一个网页中是否包含ajax请求

3.1 网页源码和开发者工具中Elements看到的网页内容不一样

        这是最基本,也是最本质的区别。以网址:M Terminal为例:

通过鼠标右键查看网页源码,显示如下:

通过开发者工具查看网页动态加载数据:

稍微对比就可以发现,动态请求网页中的数据好多不少。

3.2 ajax网页一般翻页时,网址不会发生变化

还是以网站M Terminal为例,发现点击下方页面按钮时,虽然网页显示的数据发生了变化,但是网址却没有变化,说明点击页面按钮时,通过ajax进行了动态请求。

相关推荐

  1. 【Golang】判断数组是否包含指定元素

    2024-04-27 13:56:04       10 阅读
  2. axios 请求 url 地址,判断网络地址是否存在

    2024-04-27 13:56:04       22 阅读
  3. Oraclesql怎么判断联合索引是否生效

    2024-04-27 13:56:04       30 阅读
  4. selenium怎么判断是否已选多选框

    2024-04-27 13:56:04       8 阅读
  5. 判断一个括号串的括号是否为匹配。

    2024-04-27 13:56:04       33 阅读
  6. 如何判断一个元素是否在可视区域

    2024-04-27 13:56:04       8 阅读

最近更新

  1. 【深入探索】揭秘SQL Server的多重身份验证模式

    2024-04-27 13:56:04       0 阅读
  2. 短链接day3

    2024-04-27 13:56:04       0 阅读
  3. [C++基础]C++ 10个常用案例

    2024-04-27 13:56:04       0 阅读
  4. android paddingStart paddingLeft 使用区别

    2024-04-27 13:56:04       0 阅读
  5. 【ARMv8/v9 GIC 系列 5.7 -- 中断路由与系统寄存器】

    2024-04-27 13:56:04       0 阅读
  6. python在人工智能领域中的应用

    2024-04-27 13:56:04       0 阅读
  7. 互联汽车的RF挑战和解决方案

    2024-04-27 13:56:04       0 阅读
  8. 如何在vue3中实现动态路由

    2024-04-27 13:56:04       1 阅读
  9. 使用RAGAs评估基于Milvus Cloud的RAG应用

    2024-04-27 13:56:04       1 阅读

热门阅读

  1. UI 设计的未来发展

    2024-04-27 13:56:04       12 阅读
  2. web server apache tomcat11-18-clusting 集群

    2024-04-27 13:56:04       13 阅读
  3. leetcode28 找出字符串中第一个匹配项的下标

    2024-04-27 13:56:04       12 阅读
  4. Ali-Sentinel-上下文

    2024-04-27 13:56:04       13 阅读
  5. 代码随想录学习Day 31

    2024-04-27 13:56:04       14 阅读
  6. git撤销更改的门道

    2024-04-27 13:56:04       9 阅读
  7. 网络运维类面试非技术问题

    2024-04-27 13:56:04       11 阅读
  8. 强化学习和深度学习的差异对比

    2024-04-27 13:56:04       12 阅读