我们爬取想要的数据,一般是打开网站链接,用浏览器的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'的错误,往往就是这个问题。