gpt4 book ai didi

python - 如何在scrapy中提交表单?

转载 作者:太空狗 更新时间:2023-10-29 22:11:08 26 4
gpt4 key购买 nike

我尝试使用 scrapy 完成登录并收集我的项目提交计数。这是代码。

from scrapy.item import Item, Field
from scrapy.http import FormRequest
from scrapy.spider import Spider
from scrapy.utils.response import open_in_browser


class GitSpider(Spider):
name = "github"
allowed_domains = ["github.com"]
start_urls = ["https://www.github.com/login"]

def parse(self, response):
formdata = {'login': 'username',
'password': 'password' }
yield FormRequest.from_response(response,
formdata=formdata,
clickdata={'name': 'commit'},
callback=self.parse1)

def parse1(self, response):
open_in_browser(response)

运行代码后

scrapy runspider github.py

它应该显示表单的结果页面,该页面应该是同一页面中的登录失败,因为用户名和密码是假的。但是它向我显示了 search page .日志文件位于 pastebin

代码应该如何修复?提前致谢。

最佳答案

您的问题是 FormRequest.from_response() 使用不同的表单 - “搜索表单”。但是,您希望它改用“登录表单”。提供一个 formnumber 参数:

yield FormRequest.from_response(response,
formnumber=1,
formdata=formdata,
clickdata={'name': 'commit'},
callback=self.parse1)

这是应用更改后我在浏览器中打开的内容(使用“假”用户):

enter image description here

关于python - 如何在scrapy中提交表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28038950/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com