2016-03-16 51 views
1

我抓取網站XPath表達式不工作在網站上

這是我的路

response.xpath(".//div[@id='search_listing']/ul[@id='listings']/li[@class='item']") 

我得到空的結果,但正如你看到的波紋管,有值:

enter image description here

我起訴scrapy

+0

工作對我來說在scrapy殼..獲得非空列表。 – alecxe

回答

3

查看額外的s在item課後步伐:

<li class="item ">... 
      HERE^ 

這就是爲什麼你的@class='item'條件是不工作的原因。你將不得不使用contains()爲部分匹配:

.//div[@id='search_listing']/ul[@id='listings']/li[contains(@class, 'item')] 

我雖然考慮CSS選擇一個更簡潔的定位技術:

response.css("#search_listing #listings .item") 
+0

我試過你的代碼'container = response.xpath(「.// div [@ id ='search_listing']/ul [@ id ='listings']/li [contains(@ class ='item')]」) '但我得到錯誤,請問是否正確? –

+0

錯誤是:'無效的XPath:.// div [@ id ='search_listing']/ul [@ id ='listings']/li [contains(@ class ='item')]' –

+0

@MarcoDinatsoli note how你正在使用'contains()' - 應該是逗號而不是'=',就像在答案中一樣。 – alecxe