我想使用请求访问网站的数据,但它需要“授权”标头才能获取响应。我可以通过登录手动获取它,但如果是这样的话,编写程序就没有意义了。 此外,它每隔几分钟就会重置。如何提供登录凭据并获取授权密钥?
我试过这个:
import requests
headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"}
login_url = 'https://example.com/login'
login_data = {
'username': 'username',
'password': 'password'
}
session = requests.session()
login_response = session.post(login_url, data=login_data, headers=headers)
print(login_response.status_code) # always gives 404
还有这个:
import requests
headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"}
username = "username",
password = "pass",
url = "https://url.com/login"
with requests.session() as session:
reponse = session.post(url, auth=(username, password), headers=headers)
print(reponse) # it gives 404 also
我该怎么做?
编辑:我使用此代码并获得了 200,但我没有获得授权密钥。我怎样才能得到它?
import requests
from requests.auth import HTTPBasicAuth
headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"}
username = "user",
password = "pass",
url = "https://url.com"
response = requests.get(url, auth=HTTPBasicAuth(username, password), headers=headers)
print(response) # 200
print(response.headers) #doesnt have "authorization"
我找到了答案。我从 '
requests
' 切换到 'selenium
',现在我使用 'driver.get_cookies()
' 获取令牌