【发布时间】:2015-05-30 11:15:33
【问题描述】:
我正在通过 Chrome 开发工具检查页面,并在页面上有元素的 xpath。我故意禁用了 javascript,因此 DOM 不会被更改。然而,xpath I Chrome 给出的元素结果为scrapy 中的[],尽管该元素当然存在。可能是什么问题?
特别是xpath //*[@id="prddeatailed_container"]/table[1]/tbody/tr[1]/td/div/table/tbody/tr[2]/td[1]/span这个http://cheaptool.ru/product/sadovyj-pylesos-billy-goat-lb351/——价格29990。
$ scrapy shell 'http://cheaptool.ru/product/sadovyj-pylesos-billy-goat-lb351'
In [2]: xp1 = '//*[@id="prddeatailed_container"]/table[1]/tbody/tr[1]/td/div/table/tbody/tr[2]/td[1]/span'
In [3]: aaa = response.xpath(xp1)
In [4]: aaa
Out[4]: []
更新: 结果在结果 html 中没有 tbody。为什么 Chrome 会在 xpath 中显示它?如何让它成为xpath中真正的html?
【问题讨论】:
-
你为什么不直接使用:
//span[@class="totalPrice"]? -
@user3616725,问题不是用什么,而是为什么不行。
-
也许读过Scrapy manual?特别是:永远不要使用完整的 XPath 路径,使用基于属性或任何识别特征的相对和聪明的路径... 和 永远不要在 XPath 表达式中包含
<tbody>元素,除非你真的知道你在做什么'正在做
标签: python google-chrome python-2.7 xpath scrapy