偶尔我们在写爬虫的时候会遇到这样一个问题,在浏览器上写的xpath语法明明可以获得数据,但是到python里面,一模一样的xpath语法却无法得到数据,这个问题出现在哪里呢?
【前提:自己写的xpath没有问题,能准确获取数据】
原因一:
浏览器上的xpath是根据 浏览器解析了服务器返回过来的网页源码,两者可能存在一定差异,比如部分标签不一样。
【查看网页源码(在网页上右键,检查网页源码)】
会发现网页源码的标签与浏览器解析的不太一样,此为正常现象:是因为浏览器解析了服务器返回过来的网页源码导致的,python获取的是此源码,非浏览器解析的结果【但是大多数情况下浏览器上与此源码一样】。
如今的浏览器是非常智能的,如果HTML缺少些标签,也会帮助服务器返回过来的源码自动补全,导致标签上存在差异。
获取方式:查看网页源码【或者从spyder里面复制出来content变量的内容<最准确>】,通过网页源码确定准确的标签以及属性。
原因二:
数据是通过动态加载的,静态网页数据获取的一套在这里根本用不上。
需要学习动态网页爬虫才能准确获取想要的数据。
公众号有更多干货分享哦~~