2

明らかな理由もなく突然停止するという事実を除けば、正常に動作しているように見えるスクレイプスパイダー(この要点のコード)があります。停止すると、ログファイルの最後のビットは次のようになります。

2012-12-28 23:42:04+0000 [church] DEBUG: Crawled (200) <GET http://www.achurchnearyou.com/cogges-st-mary/> (referer: http://www.achurchnearyou.com/clifton-reynes-st-mary-the-virgin/)
2012-12-28 23:42:04+0000 [church] DEBUG: Scraped from <200 http://www.achurchnearyou.com/cogges-st-mary/>
    {'archdeaconry': u'OXFORD',
     'archdeaconry_id': u'271',
     'benefice': u'Cogges and S Leigh',
     'benefice_id': u'27',
     'deanery': u'WITNEY',
     'deanery_id': u'27109',
     'legal_name': u'Cogges',
     'parish_id': u'270245'}
2012-12-28 23:42:04+0000 [church] DEBUG: Redirecting (301) to <GET http://www.achurchnearyou.com//> from <GET http://www.achurchnearyou.com/venue.php?V=0083>
2012-12-28 23:42:04+0000 [church] INFO: Closing spider (finished)

スパイダーがURLをリダイレクトした直後に終了したと判断する理由はありますか?興味深いのは、このようなリダイレクトをキャッチして代わりに新しいリクエストを作成するカスタムDownloaderMiddlewareがあることです(基本的に、私が試しているいくつかのURLはホームページにリダイレクトされ、代わりにそれらを無視して別のURLを作成します)。

4

1 に答える 1

1

上手..

コードを調べましたが(きれいに見えます)、エラーはもっと単純だと思います(初期ID = 63で始めた理由はまだわかりません)。

ただし、タスクをリバースエンジニアリングします。簡単な答えは次のとおりです。

  1. ID 83の「教区」が存在しないか、エラーが発生しています。

http://www.achurchnearyou.com/send_message.php?venue_id=82にアクセスすると、機能します。しかし、http://www.achurchnearyou.com/send_message.php?venue_id=83を試してみてください

(ID 82と83に注意してください)

教区の名前は、他の機能の場合も同じように消えます。

リダイレクトを取得する理由は、404ファイルが見つからないことを表示する代わりに、CMS/Webサイトがホームページにリダイレクトしているためです。

于 2013-03-18T04:47:30.240 に答える