urllib2でValueError

Python Add comments

杉並区に続き、練馬区立図書館でもスクレイピングをしてみようと、Pythonのurllib2でアクセスしてみると、ValueErrorに遭遇。

  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/socket.py", line 304, in read
    data = self._sock.recv(rbufsize)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/httplib.py", line 509, in read
    return self._read_chunked(amt)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/httplib.py", line 548, in _read_chunked
    chunk_left = int(line, 16)
ValueError: invalid literal for int() with base 16: ''

取得したデータをread()した時に、問題が発生しているみたい。他のURLでは起こらないので、データの方に問題があるとか?

ググってみると、PythonのIssue Trackerに報告があがってた。

» Issue 3721: invalid literal for int() with base 16: ” – Python tracker

こちらの書き込みに従い、MacPortsでPython 2.6.1をインストールして試してみると、問題なく成功。2.6.xでは修正されているようですね。

ただ、MacではPython 2.5.xをメインに使う予定なので、2.5が修正されないのはちょっと残念。

でも、バグを修正してくれた方々には、感謝。

Leave a Reply

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン