我想从网站中提取某些数据。 最初,我正在转换为.txt文件,然后在Python中编写一些例程来过滤/读出数据,这些数据对95%的数据起作用,这是不够的。我发现lxml有一种方法,我试过,但是没能成功。使用XPATH我想我标记了正确的位置,但是,我只得到空括号作为结果[]。如果有人知道如何纠正它,将不胜感激。
感谢。
彼得
from lxml import html
import requests
page=requests.get('http://www.finanzen.net/analyse/ING_Group_NV_overweight-JP_Morgan_Chase__Co__529284')
tree=html.fromstring(page.text)
unternehmen=tree.xpath('/html/body/div[1]/div[8]/div[2]/div[3]/div[4]/div[1]/div/div[2]/div[4]/div[2]/table/tbody/tr[1]/td[1]/br')
#This should fetch the information about unternehmen
print unternehmen
答案 0 :(得分:0)
该页面源代码很乱。很少id
个属性和许多匿名 <div>
。您可以使用id
属性获取最近的元素,转到其父级,即保留要提取的元素的表的根。以下xpath
表达式对我有用。试一试:
response.xpath('//a[@id="commentLink"]/ancestor::div[4]/div[2]/div[4]/div[2]/table/tr/td[1]/text()')[0]
它产生:
u'ING Group NV'
最后一个[0]
是因为很难解析非关闭的<br>
标记而td
列检索三个文本元素,所以我只得到第一个。你必须根据自己的需要进行调整。