xpath和scrapy没有将文本放入具有多个属性的段落中

时间:2017-03-03 16:46:50

标签: xpath scrapy

我正在尝试使用scrapy和xpath编写一个web scraper,但我遇到了一个令人沮丧的问题。

我需要带有HTML

的段落中的文字
    <p class="list-details__item__date" id="match-date">04.03.2017 - 15:00</p>

我可能错了,但由于p具有id属性,因此只需使用

即可
    response.xpath('//p[@id="match-date"]/text()').extract()

无论如何,这不会奏效。

我知道一点xpath,过去我能够编写刮刀,但是这个给我带来了麻烦。我尝试了很多解决方案,但似乎没有人工作

    response.xpath('//p[contains(@class, "list-details__item__date") and contains(@id,"match-date")]/text()').extract()

    response.xpath('//p[@class="list-details__item__date" and @id="match-date"]/text()').extract()

我也尝试使用&#34;包含&#34;正如许多答案所述,但它并没有奏效。这可能是我正在做的一个愚蠢的错误...如果有人可以帮助我会很棒!

非常感谢

1 个答案:

答案 0 :(得分:0)

可能通过AJAX / JS加载match-date ...请在浏览器中停用Javascript,然后查看是否存在match-date

另外,为了便于查找,请使用CSS选择器而不是xPaths。

response.css('#match-date::text').extract()

编辑:

要获取data-dt属性的值,请执行此操作

 response.css('#match-date::attr(data-dt)').extract()

OR XPath

response.xpath('//p[@id="match-date"]/@data-dt').extract()