我正在尝试使用scrapy,我有这个荒谬的HTML,我正在尝试它。使用Xpath Checker firefox插件,这是表中的第一行:
id('page')/x:table/x:tbody/x:tr[1]/x:td[2]/x:table/x:tbody/x:tr/x:td/x:table/x:tbody/x:tr[1]
如果我将xpath复制到:
,我会收到错误def parse(self, response):
hxs = HtmlXParseSelector(response)
data = hx.select("id('page')/x:table/x:tbody/x:tr[1]/x:td[2]/x:table/x:tbody/x:tr/x:td/x:table/x:tbody/x:tr[1]")
raise ValueError("Invalid XPath: %s" % xpath)
为什么它不能识别这个xpath?
此外,还有一种方法可以让scrapy从第3行开始获取所有数据吗?前两行只是标题和图例。
答案 0 :(得分:1)
Firefox添加了一个html标签" tbody",但实际上html可能没有它。尝试使用您的程序获取html页面,并查看标记" tbody"的位置。我在Firefox中遇到了同样的问题和相同的问题。