【发布时间】:2015-04-27 19:23:57
【问题描述】:
如果你看看这个网站:http://gbgfotboll.se/serier/?scr=table&ftid=57109
第二个表信息就是我需要的。
我现在在做什么:
我正在遍历 Tid 列中的每个单元格以匹配特定日期。如果匹配,则继续从该行中提取其他相关数据。代码如下所示:
rows_xpath = XPath("//*[@id='content-primary']/table[2]/tbody/tr[td[1]/span/span//text()='%s']" % (date))
time_xpath = XPath("td[1]/span/span//text()[2]")
team_xpath = XPath("td[2]/a/text()")
html = lxml.html.parse(url)
league_xpath = XPath("//*[@id='content-primary']/h1//text()")
divName = league_xpath(html)[0]
trash, divisionName = divName.rsplit("- ")
dict[divisionName] = {}
for i,row in enumerate(rows_xpath(html)):
.... doing some stuff here
问题: 随着时间的推移,另一个表将被插入到网页中,这意味着 rows_xpath 将无效,因为需要将其更改为:
rows_xpath = XPath("//*[@id='content-primary']/table[3]/tbody/tr[td[1]/span/span//text()='%s']" % (date))
改变的是表[x],其中x是被改变的数字。
是否有一个聪明的解决方案来解决这个问题,或者是否有更好的方法以一种不依赖于 XPath 的更安全的方式获取我需要的信息?感谢我能得到的所有帮助!
【问题讨论】: