2013-03-14 35 views
0

我正在嘗試使用scrapy,並且我嘗試使用這個可笑的html。使用XPath檢查Firefox的插件,這是在表的第一行:scrapy,無效的xpath,起始位置

id('page')/x:table/x:tbody/x:tr[1]/x:td[2]/x:table/x:tbody/x:tr/x:td/x:table/x:tbody/x:tr[1]

我得到一個錯誤,如果我複製的XPath:

def parse(self, response): 
     hxs = HtmlXParseSelector(response) 
     data = hx.select("id('page')/x:table/x:tbody/x:tr[1]/x:td[2]/x:table/x:tbody/x:tr/x:td/x:table/x:tbody/x:tr[1]") 

raise ValueError("Invalid XPath: %s" % xpath)

爲什麼它不認識這個xpath?

此外,scrapy是否有辦法從第三行開始抓取所有數據?前兩行是標題和圖例。

+0

因爲它是無效的 – JWiley 2013-03-14 21:05:55

+0

如果你可以提供一個鏈接到你想要抓取的頁面,我們可能會幫忙。 :) – Talvalin 2013-03-14 23:23:57

+0

你註冊了[namespace](http://stackoverflow.com/questions/4817112/xpath-query-for-xml-node-with-colon-in-node-name)嗎? – 2013-03-17 22:51:12

回答

1

Firefox增加了一個html標籤「tbody」,但真正的html可能沒有它。嘗試使用您的程序獲取html頁面,並查看標籤「tbody」的位置。我在Firefox中面臨同樣的問題和相同的問題。

+0

我遇到同樣的問題,即將「tbody」添加到路徑中,但scrapy無法識別它。解決辦法是隻刪除「tobdy」。 http://doc.scrapy.org/en/latest/topics/firefox.html – 2014-11-26 10:54:10