私は次のことをしようとしています:
- 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...
しかし、これはスクレイピングでのみ機能するように見えますが、私の場合は、セッションを「保持」して、そのセッションでさらに作業したいと思います。スクレイプでこれを達成する方法はありますか、それともこのタスクにより適したツールがありますか?