我在Mechanize中遇到了一个有趣的错误,我不确定是否将其作为bug提交,或者需要寻找解决方法。在
打开一个页面(错误地?)包含带十六进制代码的转义字符,会导致ValueError。以下代码再现错误:
import mechanize
b = mechanize.Browser()
gr = 'http://www.goodreads.com/'
b.open(gr + 'book/show/613791.Santuario_De_La_Pen_X303_A_De_Francia')
经过长时间的回溯,报告如下:
^{pr2}$我想这是由于unescape_charref()需要一个二进制字符代码(例如#771),而这个页面使用十六进制代码#X303。有没有办法让Mechanize正确地处理这个问题?在
在这种情况下,我实际上不太关心正确的跳转,因为我只想从这类页面的head元素内部检索URL。我想捕捉ValueError并继续得到响应。不幸的是,Mechanize无法处理此问题,并且返回None。在
你应该举报。在
短期内,您可以将源文件中的该行修改为如下所示:
相关问题 更多 >
编程相关推荐