Python 使用mechanize时,xpath在获取google搜索后续链接时返回空

Python 使用mechanize时,xpath在获取google搜索后续链接时返回空,python,html,xpath,lxml,mechanize-python,Python,Html,Xpath,Lxml,Mechanize Python,我使用上面的代码从谷歌搜索结果中获取后续链接。但是它返回空 但当我在控制台中执行相同操作时,我会得到链接 我做错了什么?HTML字符串中真的有表/tbody/tr t正文通常由浏览器插入,您可以在检查窗口中看到它 您可以尝试: br.open('http://www.google.com/advanced_search') br.select_form(name='f') br.form['as_q'] = "lxml" data = br.submit() html_string =

我使用上面的代码从谷歌搜索结果中获取后续链接。但是它返回空

但当我在控制台中执行相同操作时,我会得到链接


我做错了什么?

HTML字符串中真的有
表/tbody/tr

t正文
通常由浏览器插入,您可以在检查窗口中看到它

您可以尝试:

br.open('http://www.google.com/advanced_search') 
br.select_form(name='f')   
br.form['as_q'] = "lxml"
data = br.submit()
html_string = data.read()   //this is my input
parser = etree.HTMLParser()
tree = etree.parse(StringIO(html_string), parser)
follow_urls = tree.xpath('//*[@id="nav"]/tbody/tr/td/a')
或涵盖这两种情况:

tree.xpath('//*[@id="nav"]/tr/td/a')
python shell会话示例:

tree.xpath('(//*[@id="nav"]/tbody/tr | //*[@id="nav"]/tr)/td/a')

你输入的HTML是什么?现在检查我的代码段。我已经更新了它。输入是我提交表单后得到的HTML页面。
>>> import pprint
>>> import lxml.html
>>> root = lxml.html.parse('http://www.google.fr/search?q=lxml').getroot()
>>> pprint.pprint(root.xpath('(//*[@id="nav"]/tbody/tr | //*[@id="nav"]/tr)/td/a/@href'))
['/search?q=lxml&ie=UTF-8&prmd=ivns&ei=UHsxU-6KK8nxhQfinYG4Ag&start=10&sa=N',
 '/search?q=lxml&ie=UTF-8&prmd=ivns&ei=UHsxU-6KK8nxhQfinYG4Ag&start=20&sa=N',
 '/search?q=lxml&ie=UTF-8&prmd=ivns&ei=UHsxU-6KK8nxhQfinYG4Ag&start=30&sa=N',
 '/search?q=lxml&ie=UTF-8&prmd=ivns&ei=UHsxU-6KK8nxhQfinYG4Ag&start=40&sa=N',
 '/search?q=lxml&ie=UTF-8&prmd=ivns&ei=UHsxU-6KK8nxhQfinYG4Ag&start=50&sa=N',
 '/search?q=lxml&ie=UTF-8&prmd=ivns&ei=UHsxU-6KK8nxhQfinYG4Ag&start=60&sa=N',
 '/search?q=lxml&ie=UTF-8&prmd=ivns&ei=UHsxU-6KK8nxhQfinYG4Ag&start=70&sa=N',
 '/search?q=lxml&ie=UTF-8&prmd=ivns&ei=UHsxU-6KK8nxhQfinYG4Ag&start=80&sa=N',
 '/search?q=lxml&ie=UTF-8&prmd=ivns&ei=UHsxU-6KK8nxhQfinYG4Ag&start=90&sa=N',
 '/search?q=lxml&ie=UTF-8&prmd=ivns&ei=UHsxU-6KK8nxhQfinYG4Ag&start=10&sa=N']
>>>