0
page = urlopen(req)
doc = parse(page).getroot()
table = doc.xpath('/html/body/div/div/div/table')
table
<Element table ...>
doc.xpath('/html/body/div/div/div/table/tr')
<Element tr ...>...
table.xpath('/tr')
[]

为什么不table.xpath('/tr')产生相同的元素列表doc.xpath('/html/body/div/div/div/table/tr')呢?

4

1 回答 1

6

这是因为以 开头的 xpath/总是从文档根开始匹配。

为避免这种情况,要么去掉斜线,要么显式地使用它.来匹配当前元素。
这些中的任何一个都应该起作用:

table.xpath('tr')
# or
table.xpath('./tr')
于 2012-12-07T22:12:06.310 回答