我正在尝试执行以下操作:
- 登录网页(在我的例子中是 zendesk.com)
- 使用该会话进行一些发布请求
事实上,zendesk 错过了一些我现在需要模拟浏览器会话的 api(创建/更改宏)。
所以我不是在写蜘蛛,而是在我的脚本继续进行时尝试与网站进行交互。发布请求从一开始就未知,但仅在我的脚本期间才知道。
在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...
但看起来这只适用于抓取,但在我的情况下,我只想“持有”会话并进一步使用该会话。有没有办法用scrapy来实现这个,或者有没有更适合这个任务的工具?