6

ボットを停止するのに十分なほど洗練された Web サイトをクロールしようとしています。つまり、Scrapy がハングした後、少数のリクエストしか許可されていません。

質問 1: Scrapy がハングした場合、同じポイントからクロール プロセスを再開する方法はありますか? この問題を取り除くために、設定ファイルを次のように書きました

BOT_NAME = 'MOZILLA'
BOT_VERSION = '7.0'

SPIDER_MODULES = ['yp.spiders']
NEWSPIDER_MODULE = 'yp.spiders'
DEFAULT_ITEM_CLASS = 'yp.items.YpItem'
USER_AGENT = '%s/%s' % (BOT_NAME, BOT_VERSION)

DOWNLOAD_DELAY = 0.25
DUPEFILTER=True
COOKIES_ENABLED=False
RANDOMIZE_DOWNLOAD_DELAY=True
SCHEDULER_ORDER='BFO'

これは私のプログラムです:

class ypSpider(CrawlSpider):

   name = "yp"


   start_urls = [
       SOME URL

   ]
   rules=(
      #These are some rules
   )
   def parse_item(self, response):
   ####################################################################
   #cleaning the html page by removing scripts html tags    
   #######################################################
   hxs=HtmlXPathSelector(response)

問題は、どこで http プロキシを記述できるかであり、tor 関連のクラスをインポートする必要があります。このグループのおかげで、私は Scrapy を初めて使用します。今、「ip ローテーションまたは tor の使用方法」を学ぼうとしています。

私たちのメンバーの一人が提案したように、私は tor を開始し、HTTP_PROXY を

set http_proxy=http://localhost:8118

しかし、それはいくつかのエラーを投げています、

failure with no frames>: class 'twisted.internet.error.ConnectionRefusedError'   Connection was refused by other side 10061: No connection could be made because the target machine actively refused it.

だから私は http_proxy をに変更しました

set http_proxy=http://localhost:9051

今、エラーは

failure with no frames>: class 'twisted.internet.error.ConnectionDone' connection was closed cleanly.

Firefox のネットワーク設定を確認したところ、http プロキシが表示されませんでしたが、その代わりに SOCKSV5 を使用していて、127.0.0.1:9051 が表示されています。(TORの前はプロキシなしで動作します)Scrapyを介してTORを使用する方法をまだ理解していないので、助けてください。どの TOR バンドルをどのように使用すればよいですか? 両方の質問が解決されることを願っています

  1. なんらかの理由でスクレイピー クローラーがハングした場合 (接続障害)、そこからサービス自体を再開したい
  2. Scrapy でローテーション IP を使用する方法
4

1 に答える 1

4

TOR 自体は http プロキシではありません。ポート 8118 と接続拒否エラーは、privoxy[1] が正しく実行されていないことを示しています。privoxy を正しく設定してから、環境変数を使用して再試行してくださいhttp_proxy=http://localhost:8118

scrapy で privoxy を使用して TOR を正常にクロールしました。

[1] http://www.privoxy.org/

于 2011-11-11T05:23:03.723 に答える