我正在尝试从页面中的标签中提取数据
我试图提取位置
布鲁克林,纽约
我正在使用以下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 :(得分: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的工作原理(或其他一些工具,并使用它)是值得的。