网页数据抓取怎么写( 小编来一起如何用python来抓取页面中的数据? )
优采云 发布时间: 2021-09-18 14:03网页数据抓取怎么写(
小编来一起如何用python来抓取页面中的数据?
)
如何使用Python捕获网页中的动态数据
saitlas于2020年8月17日11:08:10更新
本文文章主要介绍如何使用Python捕获网页中的动态数据。通过实例代码详细介绍,对大家的学习和工作有一定的参考和学习价值。有需要的朋友,让我们和小编一起学习
我们经常发现网页中的许多数据不是用HTML编写的,而是通过JS动态加载的。因此,它引出了动态数据的概念。这里,动态数据指的是JavaScript在web页面中动态生成的页面内容,它是在页面加载到浏览器后动态生成的,而不是在加载之前
在编写爬虫程序获取网页数据时,我们经常会遇到这种需要动态加载数据的HTML网页。如果我们仍然直接从网页上获取数据,我们将无法获得任何数据
今天,让我们讨论如何使用Python获取页面中动态加载的JS数据
给出一个网页:豆瓣电影排行榜,其中所有电影信息都是动态加载的。我们无法直接从该页面获取有关每部电影的信息
如下图所示,我们无法在HTML中找到相应的电影信息
在Chrome浏览器中,单击F12在网络中打开XHR。让我们抓取相应的JS文件进行解析。如下图所示:
向下拖动豆瓣页面以加载更多电影信息,这样我们就可以抓取相应的消息
我们可以看到,它使用Ajax异步请求。Ajax可以通过在后台与服务器交换少量数据来实现web页面的异步更新。因此,可以在不重新加载整个网页的情况下更新部分网页,从而实现数据的动态加载
我们可以看到,通过get,我们得到的响应收录相应的电影相关信息,这些信息以JSON格式保存在一起
查看requesturl信息,我们可以发现action参数后面跟着两个参数“start”和“limit”。显然,它们的意思是“从某个位置返回的电影数量”
如果想快速获取相关电影信息,可以直接将URL复制到地址栏中,修改所需的start和limit参数值,并获得相应的抓取结果
但是,这不是自动的,而且许多其他网站请求URL也不是直接给出的,因此我们使用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