Python AttributeError:lxml解析getroot方法的非类型

Python AttributeError:lxml解析getroot方法的非类型,python,web-scraping,mechanize,lxml,Python,Web Scraping,Mechanize,Lxml,我正在尝试使用lxml和mechanize废弃一个网站,但出现了一个错误: AttributeError:“非类型”对象没有属性“xpath” 经过一些检查,我发现html没有返回任何内容 有趣的是,这段代码在其他网站上有效,只是在这个特定网站上无效() 感谢您的帮助:) 更新: 一个使用上述代码的工作网站示例-下面是您发布的代码的稍微修订版本,使用lxml2.3.6和mechanize 0.2.5在页面上生成元素中所有href属性的列表http://www.selangortimes.comu

我正在尝试使用lxml和mechanize废弃一个网站,但出现了一个错误:

AttributeError:“非类型”对象没有属性“xpath”

经过一些检查,我发现
html
没有返回任何内容

有趣的是,这段代码在其他网站上有效,只是在这个特定网站上无效()

感谢您的帮助:)

更新:
一个使用上述代码的工作网站示例-

下面是您发布的代码的稍微修订版本,使用lxml2.3.6mechanize 0.2.5
页面上生成
元素中所有
href
属性的列表http://www.selangortimes.comurl注意关于您最近的评论,您必须导入lxml.html

import mechanize
import lxml.html

url = 'http://www.selangortimes.com'
br = mechanize.Browser()
br.set_handle_robots(False)
br.set_handle_refresh(False)
br.addheaders = [('User-Agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)')]
br.open(url)
resp = br.response()
html = lxml.html.parse(resp).getroot()
link_targets = [link.attrib.get('href') for link in html.xpath('//a')]
print(link_targets)

在我看来,这个网站很丑陋。据我所知,mechanize不处理任何javascript。结果可能是“无”。问题是
lxml.html.parse().getroot()
未能将文档返回到
resp
。当我调试mechanize的响应时,mechanize能够检索整个html文档。问题可能是从()检索的页面以字符(
\uFEFF
)开头,而已知旧版本的lxml无法正确处理此问题。但是,我刚刚用lxml 2.3.6测试了您的代码,它正确地解析了检索到的页面。感谢@PedroRomano提供的提示,但是它仍然不起作用:)您在html.xpath(expr)上有没有发现任何错误,其中没有找到xpath?
import mechanize
import lxml.html

url = 'http://www.selangortimes.com'
br = mechanize.Browser()
br.set_handle_robots(False)
br.set_handle_refresh(False)
br.addheaders = [('User-Agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)')]
br.open(url)
resp = br.response()
html = lxml.html.parse(resp).getroot()
link_targets = [link.attrib.get('href') for link in html.xpath('//a')]
print(link_targets)