无法使用python路径从选项卡中提取数据

时间:2016-02-20 00:42:44

标签: python xpath web-scraping

我正在尝试从页面中的标签中提取数据

页面是 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

1 个答案:

答案 0 :(得分:1)

尝试:

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

换句话说,找到span个元素,其中class属性的值包含"ksr-icon__location",并提取以下文本节点。

这将返回两个文本节点,每个节点包含Brooklyn, NY。选择第一个:

print testxpath[0].text

你不能告诉你的浏览器"给我这个元素的XPath"并假设XPath表达式始终有效。例如,浏览器中显示的HTML结构可以从从服务器获取的HTML中修改(并由Web抓取程序提取)。

XPath通常可以克服这些可能的差异,如果你知道如何使用它。但它是一个强大而复杂的工具,一个完整的查询语言。如果您要进行网络抓取,那么了解XPath的工作原理(或其他一些工具,并使用它)是值得的。