私が望むウェブページをスクラップするには、ログインが必要です。ログインフォームにアクセスするには、ボタンをクリックする必要があります。このボタンはフォームを表示するAJAXリクエストを作成します。Ajax(scrapy)がロードされたフォームでログイン:セレンとスプラッシュスプラッシュ
私はTorとprivoxyを通して私の要求を渡すためにミドルウェアを使ってScrapyを使います。
私はボタンをクリックするためにセレンを使用することができましたが、(私はそれが正しいとすれば)、私は治療とセレンで得る応答を解析することができます。
私が見たとおり、私はscrapy-splashを使うことができました。私はこのoneを含むいくつかのtutosに従ってきましたが、ボタンをクリックしてログをロードしてからこのフォームを送信するためにscrapy-splashを使用する方法を思いつくことはできません。
私のsettings.py:(私はHTTP_PROXYを設定しなかった)
DOWNLOADER_MIDDLEWARES = {
...
'project.middlewares.ProxyMiddleware': 100,}
マイmiddlewares.py
def set_new_ip():
with Controller.from_port(port=9051) as controller:
controller.authenticate(password="***")
controller.signal(Signal.NEWNYM)
set_new_ip() # request new IP from TOR
request.meta['proxy'] = 'http://127.0.0.1:8118' # this passes the resquest through privoxy