次のリンクに進むページが次のようになっているページをScrapyでクロールしたい:
<a href="#" onclick="return gotoPage('2');"> Next </a>
Scrapyはそのjavascriptコードを解釈できますか?
livehttpheaders拡張機能を使用すると、[次へ]をクリックすると、次のように始まる非常に巨大な「ガベージ」を含むPOSTが生成されることがわかりました。
encoded_session_hidden_map=H4sIAAAAAAAAALWZXWwj1RXHJ9n
クラスでスパイダーを構築しようとしてCrawlSpider
いますが、コーディング方法がわかりません。このメソッドBaseSpider
を使用してparse()
、ログインフォームである最初のURLを処理し、POSTを実行しました。
def logon(self, response):
login_form_data={ 'email': 'user@example.com', 'password': 'mypass22', 'action': 'sign-in' }
return [FormRequest.from_response(response, formnumber=0, formdata=login_form_data, callback=self.submit_next)]
次に、submit_next()を定義して、次に何をするかを指示しました。最初のURLでどのメソッドを使用するかをCrawlSpiderに伝える方法がわかりません。
最初のリクエストを除いて、クロール中のすべてのリクエストはPOSTリクエストです。データの貼り付けと、[次へ]をクリックして次のページに移動するという2種類のリクエストが交互に行われます。