尝试在scrapy shell上使用选择器从网页中提取信息,但操作不正确。我相信这是因为类名中存在空白。知道发生了什么事吗?
我尝试了不同的语法,例如:
response.xpath('//p[@class="text-nnowrap hidden-xs"]').getall()
response.xpath('//p[@class="text-nnowrap hidden-xs"]/text()').get()
# what I type into my scrapy shell
response.css('div.offer-item-details').xpath('//p[@class="text-nowrap hidden-xs"]/text()').get()
# html code that I need to extract:
<p class="text-nowrap hidden-xs">Apartamento para arrendar: Olivais, Lisboa</p>
预期结果:阿伦达公寓:里斯本的奥利瓦伊斯
实际结果:[]
答案 0 :(得分:2)
class部分中的空白表示存在多个类,即“ text-nnowrap”类和“ hidden-xs”类。为了通过xpath选择多个类,可以使用以下格式:
"//element[contains(@class, 'class1') and contains(@class, 'class2')]"
(从How to get html elements with multiple css classes中获得)
所以在您的示例中,我相信这会起作用。
response.xpath("//p[contains(@class, 'text-nnowrap') and contains(@class, 'hidden-xs')]").getall()
答案 1 :(得分:1)