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

标签: pythonpython-3.xbeautifulsouppython-requests

解决方案


这很常见,但有一个快速的解决方法

  • 打开您的网络浏览器,退出linkedin。
  • 按 F12,然后转到网络选项卡,清除那里的所有请求
  • 像往常一样登录到linkedin
  • 在网络选项卡中,您将看到您的 HTTP POST 请求。
  • 获取每个 http 标头参数并将它们添加到您的 python 请求标头中。
  • 再次尝试您的脚本。从现在开始,linkedin 无法知道。

推荐阅读