2016-07-08 1 views
0

セキュリティプロトコルが強力で、できるだけ早くデータをクロールしたいウェブサイトをクロールしたいと考えています。だから私は、私はマルチログインクッキー、マルチユーザーエージェント、およびマルチプロキシクローラーが必要だと思った。クッキー、ユーザーエージェント、およびプロキシのリクエスト処理でスパイダーボンドのログイン方法は?

私は数十のユーザー名とパスワードを持っており、それぞれを使ってログインしてすべてのクッキーを取得できます。私のクローラのアイデンティティを隠すために、ユーザーエージェント設定と私のIPを置き換えるべきだと思った。私は多くのユーザエージェントとプロキシを発見しました。

私は、サーバーに要求を送信するたびにクッキーが必要であり、そのクッキーは同じIDで、前回の要求と対応する応答の情報を含んでいる必要があることを知りました。私は、ログインすることなくリクエストを渡す方法の知識を得たので、this答えてください。別insideそれ:そして、私は2つの(

from cookies import cookies # script written to login some accounts and return the cookies 
import random 

class CookiesMiddleware(object): 
    def process_request(self, request, spider): 
     cookie = random.choice(cookies) 
     request.cookies = cookie 

middleware.pyファイルにcookiesmiddlewareにクッキーを渡すことによって)でログインする方法、scrapy外のものを知っています。

ミドルウェアのファイルには何がありますか?私は、スクラピー要求にクッキーと同じようにランダムにユーザーエージェントを渡しました。

私の質問は、上記のようにランダムにクッキーを渡すと、1つのスパイダーがリクエストを送信するたびに同じクッキーを取得するのでしょうか?そうでなければ、サーバー側が私をボットとして検出し、私をブロックします。悪いことに、同じことがユーザーエージェントとプロキシにも当てはまります。ログインから始めて各トリニティ(ログインクッキー、ユーザーエージェント、プロキシ)を結びつけ、前述の答えを水平方向と垂直方向の両方に広げる方法は?

具体的には、{cookies= user1_cookie}または{ meta={'cookiejar': user1_cookie},の形式でログインCookieを渡す必要がありますか?私はユーザエージェントとプロキシをメタパラメータに渡す必要がありますか?

ありがとうございました。親切に私を正しい方向に向けると、どんな提案も高く評価され、高く評価されます。

答えて

0

あなたはcookiejarをお探しのようです。それはあなたが単一スパイダーセッションで複数のクッキーセッションを格納することができます。

ランダムなクッキーにミドルウェアを使用することは、ほとんどの場合クッキーが全体のブラウジングセッションを保存するため、悪い考えです。

+0

この文書は私には少し不慣れなようですが、cookiejarに関するチュートリアルや例は見つかりませんでした。 – lerner

+0

私の方法で保存されたクッキーは、リクエストごとにランダムに変更されるので、クッキージャーを使用して管理する必要があります。 – lerner

+0

本当に良い書き方と説明がここにあります:https://blog.scrapinghub.com/2016/03/23/scrapy-tips-from-the-pros-march-2016-edition/ しかし、今私が読む私はあなたの問題がより複雑で、あなたが1つの同時リクエストしか持っていない場合には、cookiejarがあなたが探している解決策ではないかもしれないと思います。 – Granitosaurus

関連する問題