我是 Scrapy 的新手,我正在尝试登录工作,从 shell 开始。这是我要登录的网站:
https://www.acdd.com/customer/account/login/
首先我做了
from scrapy.http import FormRequest
然后我做了
token = response.xpath('//*[@name="form_key"]/@value').extract_first()获取令牌并且输出看起来正确。然后我做了
FormRequest.from_response(response,formdata={'form_key': token,'login[customerid]': '12345','login[username]': 'myaddress@email.com','login[password]': 'mysecret'})
它输出
<GET https://www.acdd.com/catalogsearch/result/?q=&login%5Bcustomerid%5D=12345&login%5Busername%5D=myaddress%40email.com&login%5Bpassword%5D=mysecret&form_key=abcdef12345>
如果我这样做view(response),它只会显示登录页面,而不是应该显示的用户页面。我一直在关注教程和示例,但我认为这个站点可能与我使用的简单示例有所不同。我使用 Firefox 登录并查看开发人员工具以查看它发布的表单数据,并且我拥有所有元素。看起来,当表单打开时https://www.acdd.com/customer/account/login/,它实际上发布到https://www.acdd.com/customer/account/login/Post. 我试图在 shell 中发布到该页面,但没有表单元素。这超出了我使用过的基本示例。任何帮助表示赞赏。