python爬虫数据寻找过程(解决爬虫异步导致AttributeError: 'NoneType' object has no attribute 'find_all'错误)

前边写了url的分析

我们爬取想要的数据,一般是打开网站链接,用浏览器的elements功能对网页标签进行数据分析,确定想要的数据的位置,再在代码中通过requests库的get和post方式发起请求,得到返回的内容,再用美味汤进行数据查找,最后保存。

但这是静态加载的网站的数据分析方式,学习别人代码时会出现AttributeError: 'NoneType' object has no attribute 'find_all'的错误,这是因为网站变了,采用了异步加载的方式(XHR或者js),这就导致你右键网页查看源代码和F12中的elements完全不一样,你继续用elements分析就不对了,因为数据是动态加载的,你直接在浏览器链接栏拷贝的地址直接get是get不到动态加载的数据的,需要通过network中的xhr和js,去重新构造请求,对返回的json数据进行处理,你想要的数据就在里边!

上边的工作思路是错的,因为拿到链接首先就应该去判断数据是静态的加载还是动态的加载,而不是在敲代码的过程中发现找不到数据再去判断,对于网上下载的代码,如果出现AttributeError: 'NoneType' object has no attribute 'find_all'的错误,往往就是这个问题。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值