python抓取动态网页( 为啥写这篇文章?前两篇文章我们分别介绍了文章目录分析页面)
优采云 发布时间: 2021-12-16 10:08python抓取动态网页(
为啥写这篇文章?前两篇文章我们分别介绍了文章目录分析页面)
为什么要写这个文章?
我们介绍了前两个文章
文章内容
分析页面
首先打开小餐桌网站。经过简单的分析,我们可以得出三个结论。
点击查看更多数据后,页面地址不变,页面不会刷新。单击以查看更多一次将请求一个界面。页面的数据以application/json的形式由接口返回。p 参数控制返回哪一页数据。n 参数控制每页返回的数据项数。什么是阿贾克斯
AJAX(Asynchronouse JavaScript And XML)中文称为异步JavaScript和XML。主要用于前端和服务器端进行少量数据交互。Ajax 可以实现网页的异步加载,这意味着可以在不重新加载整个网页的情况下部分更新网页的某个部分。如果内容需要更新,传统网页(不使用 Ajax)需要重新加载整个网页。
因为传统的数据传输格式是XML语法,所以称为AJAX。其实现在数据交互基本都是用JSON。使用ajax加载的数据,即使使用js,数据渲染到浏览器中,右键---->查看网页源码,仍然看不到通过ajax加载的数据,只加载了html带有网址代码。
获取ajax数据的方法直接分析ajax调用的接口,然后通过代码请求这个接口。使用Selenium+chromedriver模拟浏览器行为获取数据。(下面文章会详细介绍)获取数据
这个小饭桌网站的界面比较简单,没有加密认证什么的,直接通过requests请求即可。下面给出了一个示例代码:
import requests
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36"
}
requests.packages.urllib3.disable_warnings()
if __name__ == '__main__':
for i in range(1,10):
url = "https://www.xfz.cn/api/website/articles/?p={0}&n=20&type=".format(str(i))
resp = requests.get(url, headers=headers, verify=False)
print(resp.json())
操作结果:
总结
本文以小凡表网站为例,简单介绍一下如何抓取动态网页的数据。
粉丝专属福利
软试材料:实用软试材料
面试题:5G Java高频面试题
学习资料:各种学习资料50G