python抓取动态网页( 为啥写这篇文章?前两篇文章我们分别介绍了文章目录分析页面)

优采云 发布时间: 2022-04-09 05:26

  python抓取动态网页(

为啥写这篇文章?前两篇文章我们分别介绍了文章目录分析页面)

  

  为什么要写这个文章?

  前两篇文章我们分别介绍

  文章目录

  分析页面

  先打开小餐桌网站,经过简单分析我们可以得出三个结论。

  

  点击查看更多数据后,页面地址不变,不会再次刷新页面。点击查看更多将请求界面一次。页面的数据由接口以application/json的形式返回。返回哪个页面的数据由p参数控制。n 参数控制每页返回的数据项数。什么是ajax

  AJAX(Asynchronouse JavaScript And XML)中文名称是异步JavaScript和XML。主要用于前端与服务器之间的少量数据交互。Ajax 允许异步加载网页,这意味着可以对网页的某些部分进行部分更新,而无需重新加载整个网页。如果内容需要更新,传统网页(不使用 Ajax)需要重新加载整个网页。

  因为传统的数据传输格式使用XML语法,所以称为AJAX。其实数据交互基本都是用JSON。AJAX加载的数据,即使使用JS,数据渲染到浏览器中,右键---->查看网页源代码,还是看不到ajax加载的数据,你只能看到url代码加载的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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线