for link in br.links(url_regex="inquiry-results.jsp"):
cb[link.url] = link
for page_link in cb.values():
for link in br.links(url_regex="inquiryDetail.jis"):
....................
url = link.absolute_url
br.follow_link(link)
......................
br.follow_link(page_link)这是我的代码。基本上,它提取页面1,2,3,4,5的页面链接链接...以及来自特定页面的数据链接。然后,它进入每个数据链接并提取一些数据,当完成后,它移动到下一页。但我总是得到这样的错误:
Traceback (most recent call last):
File "C:\python27\test.py", line 95, in <module>
for link in br.links(url_regex="inquiryDetail.jis"):
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 405, in links
mechanize._mechanize.BrowserStateError: not viewing HTML有人能帮上忙吗?
发布于 2010-08-12 17:25:09
这似乎与检查响应是否为有效的HTML有关:
http://github.com/jjlee/mechanize/blob/master/mechanize/_mechanize.py#L440
也许你得到的响应是XHTML,或者有无效的报头?可能有一些方法可以覆盖is_html属性(如here)。
发布于 2010-11-17 10:41:41
感谢loevborg发布的链接,我一直在使用这个:
br.open('http://example.com')
br._factory.is_html = True现在br.viewing_html()的计算结果为True
发布于 2015-11-04 13:04:22
在br.open可能对此有所帮助之前,将你的应用作为浏览器引入:
br.addheaders = [('User-agent','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/45.0.2454101')]https://stackoverflow.com/questions/3464931
复制相似问题