1

urllib2一部のデータを抽出するためにページを開く関数があります。80% の確率で正常に動作しますが、20% の確率でIncompleteRead例外が発生します。

トレースバック

Traceback (most recent call last):
  File "test.py", line 380, in <module>
    main()
  File "test.py", line 109, in main
    soups.append(BeautifulSoup(out_queue.get().read()))
  File "c:\python27\lib\socket.py", line 351, in read
    data = self._sock.recv(rbufsize)
  File "c:\python27\lib\httplib.py", line 541, in read
    return self._read_chunked(amt)
  File "c:\python27\lib\httplib.py", line 601, in _read_chunked
    value.append(self._safe_read(chunk_left))
  File "c:\python27\lib\httplib.py", line 649, in _safe_read
    raise IncompleteRead(''.join(s), amt)
httplib.IncompleteRead: IncompleteRead(958 bytes read, 678 more expected)

基本からページを開いていますが、

response = urllib2.urlopen('the_url') 

その後、プログラムでそれをBeautifulSoupオブジェクトに変換します。

最初のリクエストが で行われたときに問題をキャッチする方法はありurllib2ますか? 何かをしようとするに、データが「完全」であることを確認する方法はありますか?

4

1 に答える 1