python - 无法使用 python 请求登录,即使在先发出获取请求并设置标头后也是如此
问题描述
我正在尝试从页面获取数据。我试图阅读其他有同样问题的人的帖子,首先发出获取请求以获取 cookie,设置标头,但都不起作用。当我检查输出时,print(soup.title.get_text())
我仍然最终得到“登录”作为返回的标题。与 HTML元素login_data
具有相同的键名,例如用户名和密码。不知道下一步该怎么做。我不能使用 selenium,因为我必须在运行 splunk 服务器的 EC2 实例上执行此脚本。<input>
<input name=ctl00$cphMain$logIn$UserName ...>
<input name=ctl00$cphMain$logIn$Password ...>
import requests
from bs4 import BeautifulSoup
link = "****"
login_URL = "https://erecruit.elwoodstaffing.com/Login.aspx"
login_data = {
"ctl00$cphMain$logIn$UserName": "****",
"ctl00$cphMain$logIn$Password": "****"
}
with requests.Session() as session:
z = session.get(login_URL)
session.headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36',
'Content-Type':'application/json;charset=UTF-8',
}
post = session.post(login_URL, data=login_data)
response = session.get(link)
html = response.text
soup = BeautifulSoup(html, "html.parser")
print(soup.title.get_text())
解决方案
我真的找到了答案。
您基本上可以使用 chrome 转到网络选项卡,然后将请求复制为 cURL 语句。然后,只需使用网站或工具将 cURL 语句转换为其等效的编程语言(Python、node、java 等)。
推荐阅读
- c++ - 需要帮助解决错误 LNK2019 和 LNK1120
- c# - C# try and catch inside a do while
- javascript - 只有在第一个函数完全完成后才运行第二个函数
- django - 如何在 django-allauth 中添加电子邮件黑名单选项?
- python - 为什么 Sympy .Norm() 不将实值符号视为实数?为什么 Sympy 积分声称 a 0.25 不能以 a*x**b 的形式表示?
- css - 元素的不同显示取决于 css 选择器
- java - 在比赛场景中更新里程表/赛车类有困难
- laravel - [Route: Kategori.destroy] [URI: Model/Kategori/{Kategori}] 缺少必需的参数
- python - 是否可以使用 Paramiko 上传文件夹?
- java - 如何在 Runnable 中提供影响当前活动的回调函数