繁体   English   中英

无法使用 python 请求登录,即使先发出 get 请求并设置标头

[英]Can't login with python requests, even after making a get request first, and setting headers

我正在尝试从页面中获取数据。 我试图阅读其他有同样问题的人的帖子,首先提出一个 get 请求来获取 cookie,设置标题,但没有一个工作。 当我检查print(soup.title.get_text())的输出时,我仍然在标题返回时得到“登录”。 login_data与 HTML <input>元素具有相同的键名,例如<input name=ctl00$cphMain$logIn$UserName ...>表示用户名, <input name=ctl00$cphMain$logIn$Password ...>表示密码。 不知道下一步该怎么做。 我不能使用 selenium,因为我必须在运行 splunk 服务器的 EC2 实例上执行此脚本。

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 等)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM