爬虫爬取网页数据

核心提示本文讲的是不使用selenium插件模拟浏览器,如何获得网页上的动态加载数据。不做如下: 一、找到正确的URL。二、填写URL对应的参数。三、参数转化为urllib可识别的字符串data。四、初始化Request对象。五、urlopen这个

本文是关于如何在不使用selenium插件模拟浏览器的情况下,获取网页上的动态加载数据。不要做以下事情:首先,找到正确的网址。其次,填写URL对应的参数。第三,将参数转换成urllib可识别的字符串数据。四。初始化请求对象。5.请求对象urlopen获取数据。

url='http://www。*****.*****/*********'

formdata = {'year ':年,

'月':月,

'日':日

}

data = urllib.urlencode

request=urllib2。请求

如果URL不带参数,则为request=urllib2。请求室:冠军联赛。请求

r = urllib2.urlopen

Html=r.read # Html是你想要的数据,可能是html格式,json格式,也可能是其他格式。

后面的步骤都一样,关键是如何获取URL和参数。以我们新冠肺炎疫情统计网站为例。

如果直接抓取浏览器的网址,会看到一个没有数据内容的html,只有标题、栏目名称之类的,没有累计诊断、累计死亡等数据。因为这个页面的数据是动态加载的,不是静态的html页面。你需要按照我上面写的步骤来获取数据。关键是获取URL和相应的参数formdata。下面就来说说如何在Firefox中获取这两个数据。

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

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

这里会有很多网络传输记录。观察最右边红框中的“尺寸”栏。该列指示该http请求传输的数据量。通常,动态加载的数据量会大于其他页面元素传输的数据量。与其他基于字节的数据相比,119kb是很大的数据量。当然,有些网页的装饰图片也很大,需要根据文件类型栏来识别。

然后单击域名列对应的行,如下所示

您可以在消息头中看到请求url,这就是url。单击参数以查看与URL对应的参数。

https://view.inews.qq.com/g2/getonsInfo name = disease _ H5 callback = jquery 341004532487105727312 _ 1584498763134 _ = 1584498763135

你能看到网址的结尾吗?参数已经写在后面了。

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

Request=urllib2。请求室:冠军联赛。请求,无数据参数。

如果使用request=urllib2。请求室:冠军联赛。请求

然后URL = " https://view . inews . QQ . com/G2/getonsinfo "

formdata = {'name': 'disease_h5 ',

回调“:”,

_ ':当前时间戳

}

名字是disease_h5,callback是页面回调函数。我们不需要有回调动作,所以设置为/Kim Hye Yoon/K0/曹政奭,而_对应的是时间戳,因为查询肺炎患者的数量和时间是密切相关的。

如果所有内容都写在一个url中,则采用以下形式

URL = ' https://view . inews . QQ . com/G2/getonsInfo name = disease _ H5 callback = _ = % d ' % int

按照这个思路,我们可以得到疫情数据。你可以在两个方案中选择。

寻找url和参数需要耐心和一定的分析能力,这样才能正确识别url和参数的含义并正确编程。

有些URL非常简单,直接返回一个json格式数据的. dat文件。这是最友好的。有些需要你设置很多参数才能得到,而且是html格式的,需要解析提取数据。解析部分可以参考我之前写的BeautifulSoup解析html的介绍。

 
友情链接
鄂ICP备19019357号-22