私は次のことをしようとしています:
- Webページ(私の場合はzendesk.com)にログインします
- そのセッションを使用して、いくつかの投稿リクエストを実行します
実際、zendeskはいくつかのAPI(作成/変更マクロ)を見逃しており、ブラウザーセッションのシミュレーションをシミュレートする必要があります。
ですから、私はスパイダーを書いているのではなく、スクリプトが進むにつれてWebサイトと対話しようとしています。投稿リクエストは最初からわかりませんが、私のスクリプトの間だけです。
Scrapyのドキュメントには、Scrapyで認証されたセッションを使用する方法を示す次の例があります。
class LoginSpider(BaseSpider):
name = 'example.com'
start_urls = ['http://www.example.com/users/login.php']
def parse(self, response):
return [FormRequest.from_response(response,
formdata={'username': 'john', 'password': 'secret'},
callback=self.after_login)]
def after_login(self, response):
# check login succeed before going on
if "authentication failed" in response.body:
self.log("Login failed", level=log.ERROR)
return
# continue scraping with authenticated session...
しかし、これはスクレイピングでのみ機能するように見えますが、私の場合は、セッションを「保持」して、そのセッションでさらに作業したいと思います。スクレイプでこれを達成する方法はありますか、それともこのタスクにより適したツールがありますか?