Python 3.x python请求和会话的授权
我是Python新手。我正试图登录到该网站,但没有成功(未经授权)。我做错了什么Python 3.x python请求和会话的授权,python-3.x,parsing,Python 3.x,Parsing,我是Python新手。我正试图登录到该网站,但没有成功(未经授权)。我做错了什么 import requests with requests.Session() as c: url = 'https://kartoteka.ru' LOGIN = 'somelogin' PWD = 'secretpassword' PROMO = "" c.get(url) loginData = dict(login=LOGIN, pwd=PWD, promo
import requests
with requests.Session() as c:
url = 'https://kartoteka.ru'
LOGIN = 'somelogin'
PWD = 'secretpassword'
PROMO = ""
c.get(url)
loginData = dict(login=LOGIN, pwd=PWD, promo=PROMO)
c.post(url, data=loginData, headers = {"Referer": "https://kartoteka.ru"})
page=c.get(url)
print(page.content)
第一个问题是,您似乎在登录表单中遗漏了以下输入:
<input type="checkbox" id="scratchcard_checkbox" name="scratchcard" value="scratchcard" style="top: 2px; position: relative;margin-right: 4px;">
为什么你一开始就要麻烦
获取url?我认为没有必要
你如何知道自己未经授权?当您使用登录数据发布时,您没有保存请求对象,因此您如何知道它返回了错误代码
顺便说一句,声明一个文字字典来创建这样的字典要快得多,而且在会话中不需要它
import requests
ROOT_URL = 'https://kartoteka.ru'
USERNAME, PASSWORD = 'login', 'pass'
PROMO = ''=
with requests.Session() as c:
login_data = {'login': USERNAME, 'pwd': PASSWORD,
'promo': PROMO, 'scratchcard': false}
login_request = c.post(ROOT_URL,
data=login_data,
headers={"Referer": "https://kartoteka.ru"})
login_request.raise_for_status()
print(c.get(ROOT_URL).content)
我不知道这是否能解决任何问题,但这可能只是一个开始。谢谢你的帮助!但是你的代码也不起作用。我通过分析html来检查结果。我想问题是第一步是点击“登录”按钮。登录,但我不知道如何点击它这不是问题所在,因为按钮周围没有表单来切换该模式,所以都在JS中。也许scratchcard
应该设置为scratchcard
。也许可以先尝试使用其他工具(如Postman或curl)登录,让一切正常工作,看看登录时会发生什么,然后尝试使用Python。如果打开控制台,然后手动登录,您应该能够跟踪浏览器发送的请求,然后准确地看到发生了什么。我希望站点能够设置会话cookie。对不起,我帮不上忙了。
import requests
ROOT_URL = 'https://kartoteka.ru'
USERNAME, PASSWORD = 'login', 'pass'
PROMO = ''=
with requests.Session() as c:
login_data = {'login': USERNAME, 'pwd': PASSWORD,
'promo': PROMO, 'scratchcard': false}
login_request = c.post(ROOT_URL,
data=login_data,
headers={"Referer": "https://kartoteka.ru"})
login_request.raise_for_status()
print(c.get(ROOT_URL).content)