动态网页抓取(想了解浅谈怎样使用python抓取网页中的动态数据实现的相关内容吗 )

优采云 发布时间: 2021-11-25 06:12

  动态网页抓取(想了解浅谈怎样使用python抓取网页中的动态数据实现的相关内容吗

)

  您想了解更多有关如何使用python捕获网页中的动态数据的信息吗?Saintlas将为大家详细讲解相关知识以及一些使用python捕捉网页动态数据的代码示例。欢迎阅读和指正。:python抓取网页动态数据,python抓取网页动态数据,一起来学习吧。

  我们经常发现网页中的很多数据并不是硬编码在HTML中,而是通过js动态加载的。所以也引出了动态数据的概念。这里的动态数据是指网页中通过Javascript动态生成的页面内容,是页面加载到浏览器后动态生成的,以前没有的。

  在编写爬虫抓取网页数据的时候,经常会遇到这种需要动态加载数据的HTML网页。如果你还是直接从网页上爬取,你将无法获取任何数据。

  今天,我们就在这里简单说说如何使用python抓取页面中JS动态加载的数据。

  给定一个网页:豆瓣电影排行榜,里面的所有电影信息都是动态加载的。我们无法直接从页面中获取每部电影的信息。

  如下图,我们在HTML中找不到对应的电影信息。

  

  

  在Chrome浏览器中,点击F12打开Network中的XHR,我们抓取对应的js文件进行分析。如下所示:

  

  在豆瓣页面向下拖动,可以将更多的电影信息加载到页面中,以便我们抓取相应的消息。

  我们可以看到它使用了AJAX异步请求。通过在后台与服务器交换少量数据,AJAX 可以使网页异步更新。因此,可以在不重新加载整个网页的情况下更新网页的某一部分,从而实现数据的动态加载。

  

  我们可以看到,通过GET,我们得到的响应中收录了对应的电影相关信息,以JSON格式存储在一起。

  

  查看RequestURL信息,可以发现action参数后面有“start”和“limit”两个参数。显然他们的意思是:“从某个位置返回的电影数量”。

  如果你想快速获取相关电影信息,可以直接把这个网址复制到地址栏,修改你需要的start和limit参数值,得到相应的抓取结果。

  但这不是很自动,很多其他的网站 RequestURL 也不是那么直接,所以我们将使用python 进行进一步的操作来获取返回的消息信息。

  

#coding:utf-8

import urllib

import requests

post_param = {'action':'','start':'0','limit':'1'}

return_data = requests.get("https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90",data =post_param, verify = False)

print return_data.text

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线