不使用selenium插件如何抓取网页的动态加载数据

免费建站   2024年05月10日 15:10  

不使用selenium插件如何抓取网页的动态加载数据,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

下面讲的是不使用selenium插件模拟浏览器,如何获得网页上的动态加载数据。

步骤如下:

一、找到正确的URL。

二、填写URL对应的参数。

三、参数转化为urllib可识别的字符串data。

四、初始化Request对象。

五、urlopen这个Request对象,获得数据。

url='http://www.*****.*****/*********'formdata = {'year': year,'month': month,'day': day}data = urllib.urlencode(formdata)request=urllib2.Request(url,data=data) #如果URL不带参数就是request=urllib2.Request(url)r = urllib2.urlopen(request)html=r.read() # html就是你要的数据,可能是html格式,也可能是json,或去他格式

后面步骤都是相同的,关键在于如何获得URL和参数。我们以新冠肺炎的疫情统计网页为例(https://news.qq.com/zt2020/page/feiyan.htm#/)。

如果直接抓浏览器的网址,你会看见一个没有数据内容的html,里面只有、栏目名称之类的,没有累计确诊、累计死亡等等的数据。因为这个页面的数据是动态加载上去的,不是静态的html页面。需要按照我上面写的步骤来获取数据,关键是获得URL和对应参数formdata。下面以火狐浏览器讲讲如何获得这两个数据。

肺炎页面右键,出现的菜单选择检查元素。

点击上图红色箭头网络选项,然后刷新页面。如下,

这里会出现很多网络传输记录,观察最右侧红框“大小”那列,这列表示这个http请求传输的数据量大小,动态加载的数据一般数据量会比其它页面元素的传输大,119kb相比其它按字节计算的算是很大的数据了,当然网页的装饰图片有的也很大,这个需要按照文件类型那列来甄别。

然后点击域名列对应那行,如下

可以在消息头中看见请求网址,这个就是url,点击参数可以看见url对应的参数

https://view.inews.qq.com/g2/getOnsInfo?name=disease_h6&callback=jQuery341004532487105727312_1584498763134&_=1584498763135

可以看到url的尾部?后面已经把参数写上了。

我们如果使用带参数的URL,那么就

request=urllib2.Request(url),不加data参数。

如果使用request=urllib2.Request(url,data = data)

那么url="https://view.inews.qq.com/g2/getOnsInfo"

formdata = {'name': 'disease_h6',

'callback': '',

'_': 当前时间戳

}

name是disease_h6,callback是页面回调函数,我们不需要有回调动作,所以设置为空,_对应的是时间戳(Python很容易获得时间戳的),因为查询肺炎患者数量和时间是紧密相关的。

如果都写在一个url中是下面形式的

url='https://view.inews.qq.com/g2/getOnsInfo?name=disease_h6&callback=&_=%d'%int(stamp*1000)

按照这个思路就可以获得疫情数据了。两种方案任你选择。

找url和参数是一项需要耐心,需要一定的分析能力的,才能正确甄别url和参数的含义,进行正确的编程实现。参数是否可以空,是否可以硬编码写死,是否有特殊要求,其实是一个很考验经验的事情。

有的url很简单,返回一个.dat文件,里面直接就是json格式的数据,这种是最友好的了。有的需要你设置大量参数,才能获得,而且获得的是html格式的,需要解析才能提取数据。

关于不使用selenium插件如何抓取网页的动态加载数据问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

域名注册
购买VPS主机

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


评论内容 (*必填):
(Ctrl + Enter提交)   

部落快速搜索栏

各类专题梳理

网站导航栏

X
返回顶部