加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何让scrapy表单提交工作

发布时间:2020-12-16 22:25:06 所属栏目:Python 来源:网络整理
导读:我尝试使用scrapy来完成登录并收集我的项目提交计数.这是代码. from scrapy.item import Item,Fieldfrom scrapy.http import FormRequestfrom scrapy.spider import Spiderfrom scrapy.utils.response import open_in_browserclass GitSpider(Spider): name

我尝试使用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,callback=self.parse1)

以下是我在应用更改后在浏览器中看到的内容(使用“假”用户):

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读