今天在爬取一些关于时尚的数据的时候,出现了一个难以解决的问题,即我正确的写出了所爬取信息的xpath路径,利用chrome的插件也能得出我想要的数据,但在实际运行时无法得到所需信息。具体情况如下图所示:
多次验证后也无法得到所需结果,甚至还用了BeautifulSoup来试图解决,也并没有成功。
只得重新一点点检查,并且与之前写的文件进行对比,并进行了多次对照试验(笑),最终确定了问题出现在了user-agent
上,之前选取的样式如下:
'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Mobile Safari/537.36'
换用了从浏览器的得到的即:
headers = {'content-type': 'application/json',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36'}
并成功得到了正确的信息。由此可知:
User-Agent的选取选取使用可能影响到数据能否爬取到
在之前使用的是手机端的,获取到的页面与pc端不同,造成了,你虽然写对了xpath路径,但无法得出正确的结果。所以我们需要多注意User-Agent的运用,不仅不同Agent下看到的内容不一样,比如,京东网站上的手机版网页和pc版网页上的商品优惠不一样;还可以避免被屏蔽即爬取不同的网站经常要定义和修改useragent值。