Python请求422 post错误
我一直在尝试创建一个像GitHub这样需要登录验证的网站,但与GitHub不同的是,它没有注册和API。我已经按照说明和许多其他说明进行了操作,但似乎没有任何效果,只返回了422错误Python请求422 post错误,python,python-3.x,web-scraping,python-requests,Python,Python 3.x,Web Scraping,Python Requests,我一直在尝试创建一个像GitHub这样需要登录验证的网站,但与GitHub不同的是,它没有注册和API。我已经按照说明和许多其他说明进行了操作,但似乎没有任何效果,只返回了422错误 从lxml导入html url=”https://github.com/login" user=“我的电子邮件” pas=“关联密码” sess=requests.Session() r=sess.get(url) rhtml=html.fromstring(r.text) #获取所有隐藏的输入字段并对其进行记录
从lxml导入html
url=”https://github.com/login"
user=“我的电子邮件”
pas=“关联密码”
sess=requests.Session()
r=sess.get(url)
rhtml=html.fromstring(r.text)
#获取所有隐藏的输入字段并对其进行记录
hidden=rhtml.xpath(r'//form//input[@type=“hidden”]”)
form={x.attrib[“name”]:x.attrib[“value”]表示隐藏中的x}
#将登录凭据添加到dict
表单['login']=用户
表单['password']=pas
#职位
res=sess.post(url,数据=表单)
打印(res)
#
我还尝试了sess.post(url,data={'login':user,'password':pas}),得到了相同的结果get
首先删除cookies并在帖子中使用它们似乎也不起作用
我如何获得我的登录页面,最好不使用Selenium 这是因为表单
action
与登录页面不同
这是使用请求
和美化组
实现的方法:
import requests
from bs4 import BeautifulSoup
url = "https://github.com/login"
user = "<username>"
pwd = "<password>"
with requests.Session() as s:
r = s.get(url)
soup = BeautifulSoup(r.content, "lxml")
hidden = soup.find_all("input", {'type':'hidden'})
target = "https://github.com" + soup.find("form")['action']
payload = {x["name"]: x["value"] for x in hidden}
#add login creds to the dict
payload['login'] = user
payload['password'] = pwd
r = s.post(target, data=payload)
print(r)
导入请求
从bs4导入BeautifulSoup
url=”https://github.com/login"
user=“”
pwd=“”
将requests.Session()作为s:
r=s.get(url)
汤=美汤(r.含量,“lxml”)
hidden=soup.find_all(“输入”,{'type':'hidden'})
目标=”https://github.com“+soup.find(“form”)['action']
有效负载={x[“name”]:x[“value”]表示隐藏中的x}
#将登录凭据添加到dict
有效负载['login']=用户
有效载荷['password']=pwd
r=s.post(目标,数据=有效载荷)
印刷品(r)
非常感谢,终于成功了。事实证明我也使用了错误的密码,但我所做的也不是正确的密码。