我尝试使用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
代码应该如何修复?提前谢谢
使用webdriver的解决方案
你的问题是
FormRequest.from_response()
使用了一种不同的形式——“搜索形式”。但是,您希望它使用“登录表单”。提供一个formnumber
参数:以下是应用更改后在浏览器中打开的内容(使用“假”用户):
使用“formname”参数也可以:
相关问题 更多 >
编程相关推荐