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。