首页 > 解决方案 > 无法使用 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())

标签: pythonweb-scrapingpython-requests

解决方案


我真的找到了答案。

您基本上可以使用 chrome 转到网络选项卡,然后将请求复制为 cURL 语句。然后,只需使用网站或工具将 cURL 语句转换为其等效的编程语言(Python、node、java 等)。


推荐阅读