Python Mechanize中的错误 - "mechanize._mechanize.BrowserStateError:not viewing HTML"

Shu*_*ham 6 python mechanize

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)
Run Code Online (Sandbox Code Playgroud)

这是我的代码.基本上,它提取页面链接[第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
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

A B*_*A B 6

感谢loevborg发布的链接,我一直在使用这个:

br.open('http://example.com')
br._factory.is_html = True
Run Code Online (Sandbox Code Playgroud)

现在br.viewing_html()将评估为True


loe*_*org 2

这似乎与检查响应是否是有效的 HTML 有关:

http://github.com/jjlee/mechanize/blob/master/mechanize/_mechanize.py#L440

也许您得到的响应是 XHTML,或者具有无效的标头?可能有某种方法可以覆盖该is_html属性(如此)。