ボットを停止するのに十分なほど洗練された 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 バンドルをどのように使用すればよいですか? 両方の質問が解決されることを願っています
- なんらかの理由でスクレイピー クローラーがハングした場合 (接続障害)、そこからサービス自体を再開したい
- Scrapy でローテーション IP を使用する方法