我正在尝试使用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;正如许多答案所述,但它并没有奏效。这可能是我正在做的一个愚蠢的错误...如果有人可以帮助我会很棒!
非常感谢
答案 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()