2016-02-20 183 views
0

你好我試圖在一個頁面來提取標籤數據,以提取標籤數據無法使用python路徑

頁是 https://www.kickstarter.com/projects/1311034023/priva-the-invincible-and-reusable-camera-privacy-s/description

,我試圖提取位置

紐約布魯克林

我正在使用下面的Python代碼以及路徑(使用谷歌瀏覽器檢查)。

test_page= requests.get('https://www.kickstarter.com/projects/1311034023/priva-the-invincible-and-reusable-camera-privacy-s/description') 
test_pagetree= html.fromstring(test_page.content) 

testxpath= test_pagetree.xpath('//*[@id="content-wrap"]/section/div[2]/div[2]/div[1]/div/div[1]/div/a[1]/text()') 
print testxpath 
+0

這個問題如何與你的[上一個]不同(http://stackoverflow.com/questions/35402310/not-able-to-scrap-location-using-python)? – kjhughes

+1

@kjhughes:不同的URL和XPath表達式。奎師那,如果您以前的問題不再有效,請關閉/刪除它。對於這個問題,你告訴我們你嘗試過什麼,你想要什麼結果;也請告訴你實際得到的結果以及與你想要的有什麼不同。 – LarsH

+1

好的,爲了增加您的建議,這兩個問題應該是獨立的,而不是依賴於隨着時間的推移可能會改變或消失的外部鏈接。 – kjhughes

回答

1

嘗試:

testxpath = test_pagetree.xpath('//span[contains(@class, "ksr-icon__location")]/following-sibling::text()[1]') 

換句話說,找到具有class屬性值中包含的"ksr-icon__location"元件span(多個),並提取下面的文本節點。

這將返回兩個文本節點,每個節點包含Brooklyn, NY。挑選第一個:

print testxpath[0].text 

你不能只是告訴你的瀏覽器「給我這個元素的XPath的」,並認爲XPath表達式將始終工作。例如,瀏覽器中顯示的HTML結構可能會從從服務器獲取的HTML中修改(並由網絡抓取程序抓取)。

XPath通常可以克服這些可能的差異,如果您知道如何使用它。但它是一個功能強大且複雜的工具,是一種完整的查詢語言。如果您要進行網絡抓取,值得學習XPath如何工作(或其他工具,並使用它)。

+0

謝謝@ LarsH我會記住你的建議。 –