
如何判断是静态数据还是动态数据?
右键点击【显示网页源代码】再输入command+F,搜索网页上文字能找到的就是静态数据,不能找到的就是动态数据。
开始使用检查工具时遇到了中没有任何数据的问题,路径:【检查】-【network】-【Fetch/XHR】-【Name】,后面采用了进入设置中恢复默认设置的方法解决了。


本次爬取的网页采用了东方网,在【Network】-【Fetch】中找到了对应的list列表,点击【Preview】,可以看到有对应的7个数据,这就是我们本次要爬取的数据。

点击【Headers】,找到对应的Requests URL,注意下面的Requests Methods方法是GET,才能用下面的代码进行爬取,post方法的代码不一样,开始不知道为什么爬取失败,找了很多帖子才搞清楚。
get和post区别可以参考下面大佬的帖子:GET和POST方法的区别_get和post请求的区别-CSDN博客


因为爬取的数据前面会带一些无用的数据,所以我们使用json工具进行数据的优化,有两种方法:

最后得到优化后的数据 👇

附上源代码:
import requests import json import jsonpath url = 'https://apin.eastday.com/apiplus/search/hotspotList?_=1751183448770' //找到对应要爬取的url html_str = requests.get(url).text //使用get方法爬get类型网页,使用post方法爬post类型网页 data_json = json.loads(html_str) //使用json方法优化数据 data = data_json['data'] #print(html_str) qwe = jsonpath.jsonpath(data_json,'$..data') //使用jsonpath方法优化数据 print(qwe) //打印数据
使用网页登陆输入错误密码时,【Network】中会出现【Vaild】的特殊文件,点击右侧【Playload】可以看到数据是被加密过了。

参考课程链接:2、动态数据and加密数据_哔哩哔哩_bilibili
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。