0

Pythonプロセスの制限について、ここで非常に基本的なことが欠けているように感じます。パスワードで保護されたサイトに週に 1 回アクセスして、フォームに入力して既存のレコードを更新し、新しいレコードを取得するスクリーン スクレーパーがあります。(問題があれば、実際にレコードを挿入するために Django を使用しています)。

私がスクレイピングしているデータは、1 年の間に構築されます。そのため、1 月のプロセスは比較的迅速です。8 月までに、追加された新しいレコードに加えて、何千もの行を更新する必要があります。

今年は夢のように機能しましたが、最近、次のトレースバックで接続エラーが発生し始めました。

Traceback (most recent call last):
  File "douglasdivorces.py", line 42, in <module>
    forms = [f for f in br.forms()]
  File "/usr/local/lib/python2.6/dist-packages/mechanize-0.2.4.py2.6.egg/mechanize/_mechanize.py", line 420, in forms
return self._factory.forms()
File "/usr/local/lib/python2.6/dist-packages/mechanize-0.2.4-py2.6.egg/mechanize/_html.py", line 557, in forms
self._forms_factory.forms())
File "/usr/local/lib/python2.6/dist-packages/mechanize-0.2.4-py2.6.egg/mechanize/_html.py", line 237, in forms
_urlunparse=_rfc3986.urlunsplit,
File "/usr/local/lib/python2.6/dist-packages/mechanize-0.2.4-py2.6.egg/mechanize/_form.py", line 844, in ParseResponseEx
_urlunparse=_urlunparse,
File "/usr/local/lib/python2.6/dist-packages/mechanize-0.2.4-py2.6.egg/mechanize/_form.py", line 979, in _ParseFileEx
data = file.read(CHUNK)
File "/usr/local/lib/python2.6/dist-packages/mechanize-0.2.4-py2.6.egg/mechanize/_response.py", line 195, in read
data = self.wrapped.read(to_read)
File "/usr/lib/python2.6/socket.py", line 353, in read
    data = self._sock.recv(left)
    File "/usr/lib/python2.6/httplib.py", line 518, in read
    return self._read_chunked(amt)
  File "/usr/lib/python2.6/httplib.py", line 551, in _read_chunked
    line = self.fp.readline()
  File "/usr/lib/python2.6/socket.py", line 397, in readline
    data = recv(1)
  File "/usr/lib/python2.6/ssl.py", line 96, in <lambda>
    self.recv = lambda buflen=1024, flags=0: SSLSocket.recv(self, buflen, flags)
  File "/usr/lib/python2.6/ssl.py", line 217, in recv
    return self.read(buflen)
  File "/usr/lib/python2.6/ssl.py", line 136, in read
    return self._sslobj.read(len)
socket.error: [Errno 104] Connection reset by peer

問題が解決されるまでループを保持して、このエラーを説明する方法はありますか? または、私が取るべき別のアプローチはありますか?

繰り返しになりますが、就学前レベルの何かが欠けていることを願っているので、コードを投稿する手間を省きます。それほど単純でない場合は、単語を言ってください。質問を編集してスクリプトを含めます。

本当にありがとう!何が原因なのかとても興味があります。

4

1 に答える 1

0

socket.error: [Errno 104] ピアによって接続がリセットされました

つまり、サーバーはあなたのリクエストを気に入りません。多分彼らは何かを変えました。

于 2013-08-08T18:29:31.367 に答える