效果展示
import scrapy
class LoginSpider(scrapy.Spider):
name = 'login'
allowed_domains = ['github.com']
start_urls = ['http://github.com/login']#首先访问登录页面
P= "15175857475a"
def parse(self, response):
authenticity_token=response.xpath('//input[@name="authenticity_token"]/@value').extract()[0]
timestamp=response.xpath('//input[@name="timestamp"]/@value').extract()[0]
timestamp_secret=response.xpath('//input[@name="timestamp_secret"]/@value').extract()[0]
required_field=response.xpath('//input[@type="text"]/@name').extract()[1]
form_data={
"commit": "Sign in",
"authenticity_token":authenticity_token ,
"login": "用户名",
"trusted_device": "",
"password": "密码",
"webauthn-support": "supported",
"webauthn-iuvpaa-support": "unsupported",
"return_to": "https://github.com/login",
"allow_signup": "",
"client_id": "",
"integration": "",
required_field: "",
"timestamp": timestamp,
"timestamp_secret":timestamp_secret,
}
yield scrapy.FormRequest(url="http://github.com/session",callback=self.verify_login,formdata=form_data)
def verify_login(self,response):
if "Fengxiaobing00" in response.text:
print("登录成功")
else:
print("不成功")
#登录github
#请求流程 向 https://github.com/session 提交post 用户名密码等数据 获取登录页面
#1.访问 https://github.com/login获取https://github.com/session 需要的参数
"""commit: Sign in 忽略
需要购造
authenticity_token: qx0N300eRt+thwVSihcr93xQOhYLRGsdEEBXf0twTZXS8lCV9e58/neVLLBY0/v1A7zAhASGyIeuJdSR28oBRA==
login: 2418917657@qq.com 用户名
password: 15175857475a1 密码
trusted_device:
webauthn-support: supported 忽略
webauthn-iuvpaa-support: unsupported 忽略
return_to: https://github.com/login
allow_signup:
client_id:
integration:
required_field_f9a9: 不太一样,但是没有数据
timestamp: 1641002690912 时间戳 需要枸造
需要枸造
timestamp_secret: b539cdfd359669612d24768a002e4f3ccca2f52ccba8217aefc4eb6485ccf9f5"""
"""
参数获取的方式:
1.之前请求的页面中获取
2.js代码动态生成
"""



