python - 如何使用 Python 请求登录网页?标题有问题
问题描述
我正在尝试使用 Python 登录 LinkedIn,以从那里获取一些数据。但是在发送请求 6 小时后,我得到了相同的“您必须经过身份验证才能访问此页面”。回复。我猜问题出在标题上。但我无法让它工作。这是我想出的:
import requests
from bs4 import BeautifulSoup
payload = {
'session_key' : EMAIL,
'session_password' : PASSWORD
}
headerSet = {
'content-type' : 'appplication/x-www-form-urlencoded',
'user-agent' : 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Mobile Safari/537.36'
}
feed = 'https://www.linkedin.com/feed/'
url = 'https://www.linkedin.com/login/checkpoint/lg/login-submit'
with requests.Session() as s:
p = s.post(url, data=payload, headers=headerSet)
print(p.text)
r = s.get(url)
soup = BeautifulSoup(r.content)
print(soup.prettify())
解决方案
这很常见,但有一个快速的解决方法
- 打开您的网络浏览器,退出linkedin。
- 按 F12,然后转到网络选项卡,清除那里的所有请求
- 像往常一样登录到linkedin
- 在网络选项卡中,您将看到您的 HTTP POST 请求。
- 获取每个 http 标头参数并将它们添加到您的 python 请求标头中。
- 再次尝试您的脚本。从现在开始,linkedin 无法知道。
推荐阅读
- html - Angular5中的翻译属性参数
- sql - 窗口中的 SQL 计数出现次数
- c# - 将数据成功插入SSIS中特定文件的表后,如何将文件一一移动到文件夹?
- angularjs - 如何从Angularjs中的url获取id
- php - 通过 cron 运行时许可证已过期
- android - 我一直在尝试将数据从移动应用程序(Android/IOS)推送到 kafka 代理?
- uwp - 在 UWP 中擦除部分描边
- android - Flutter Widgets 对齐没有响应
- javascript - 存储实时 htmlCollection 与迭代项目 ID 数组(和树遍历)的成本
- java - 如何在嵌入式 spring ldap 服务器中启用附加模式?