Scrapy中xpath与css的匹配不到内容的问题分析

前言:

最近用scrapy爬取某些数据的时候,发现用谷歌或火狐复制的xpath和css返回的数据总是空列表,确实令人费解。


 

问题探索:

其实解决办法很简单,一般有两个问题出现

1.可能是因为有一些标签是浏览器对html文本进行一定的规范化而强行加上去的,这时xpath则无法解析出来,此时去掉xpath中的一些元素即可。例如xpath解析table,遇到tbody标签时要看网页源代码,如果源代码有tbody标签,就要加上tbody标签才能解析

1.Scrapy爬虫看到的页面结构与我们自己在浏览器看到的可能并不一样



原因分析:

我们来分析一下,为什么Scrapy爬虫看到的页面结构与我们自己在浏览器看到的可能并不一样,原因可能是因为有页面的一些数据是动态加载的,你不能直接用xpath来提取出来。那么我们能不能用一些方法来看到scrapy爬虫所看到的页面呢?当然答案是肯定的。下面提到的工具scrapy shell 功能强大,可以帮我们解析,简而言之,就是来帮助你测试xpath和css,看你写的是否能真的爬到所想要的信息


解决方案:

如果你下载了ipython(强烈建议下载 直接pip install ipython),那么scrapy shell 的功能十分强大,它可以判断你的xpath返回的内容

 假如你在scrapy shell中输入xpath和css后,发现输出为空,使用view(response)命令来看看爬虫所看到的页面是如何的(可以在弹出的浏览器中审查元素)

你可能会发现:

 你所爬的数据并没有显示出来,即可能你爬的数据是动态页面下的

确定了问题所在,再改写相对应的代码,这样的话就会节约很多时间

如果还有其他问题,欢迎各位来探讨

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值