0
解决我遇到的机械化一个有趣的错误,其中我不确定提交它作为一个错误,或者需要寻找一个解决办法。Python的机械化 - unescape_charref()不能与十六进制代码
打开(错误地?)包含带十六进制代码的转义字符的页面会导致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')
长回溯后,以下报道:
File "C:\Python27\lib\site-packages\mechanize\_html.py", line 317, in unescape_charref
uc = unichr(int(name, base))
ValueError: invalid literal for int() with base 10: 'X303'
我想这是由unescape_charref()期待一个二进制字符代码引起的(如#771) ,该页面使用十六进制代码#X303。有没有办法让机械处理正确处理?
我其实并没有太在意在这种情况下适当的转义,因为我只想从这些页面的head元素中检索URL。我想赶上ValueError并继续获得回应。不幸的是,Mechanize无法处理这个并返回None。