如何用python抓取动态网页数据
发布于 2021-10-24 11:05:12
浏览 243
详情:
1、
1.在百度首页输入“名词”,百度会出现这样的网页
2、
2.在浏览器中按F12,打开开发者工具,选中network、ALL,点击名词的“下一页”,会显示出请求数据。
3、
3.点击右侧的Preview,会看到有json数据,展开后,能看到显示的名词。
4、
4.在headers中能看到请求的url地址跟参数,接下来就是要在pycharm中编写代码来获取相应的数据了。
5、
5.# -*- cong:utf-8 -*-
6、
import re,requests,json
7、
from lxml import etree
8、
headers = {
9、
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/
10、
74.',
11、
def downloadtxt(url,coding="gb2312"):
12、
try:
13、
html = requests.get(url, headers=headers)
14、
html.encoding = coding
15、
return html.text
16、
except:
17、
return
18、
if __name__ == '__main__':
19、
for i in range(432):
20、
url = "https://sp
21、
0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?resource_id=28204&from_mid=1&format=json&query=名词&sort_type=1&pn={}&rn=40".format(i*40)
22、
res = downloadtxt(url)
23、
json_data = json.loads(res)
24、
for word in json_data['data'][0]['result']:
25、
print(word['ename'],end=',')
26、
print()
27、
downloadtxt是封装的一个获取请求返回结果的函数,在main主函数中有进行调用,for i in range(432),是因为共有432页。
28、
6.最后会直接print到屏幕,结果如图。
上一篇:Word怎么将图片上文字转换成文本文字
下一篇:分区助手分区步骤