【问题标题】:401 Error when Webscraping LinkedIn with BeautifulSoup使用 BeautifulSoup 抓取 LinkedIn 时出现 401 错误
【发布时间】:2019-08-22 17:55:24
【问题描述】:

我正在尝试使用 Python 的 BeautifulSoup 库从我的 LinkedIn "Recently Added Connections" 页面中提取 HTML。具体来说,我想要最近连接的名称 - 它出现在页面顶部。

当我检查这个特定部分的 HTML 时,我看到的内容是:

<span class="mn-connection-card__name t-16 t-black t-bold">
      Bob McBobface
    </span>

但是,我使用 BeautifulSoup 返回的 HTML 令人失望:

{"request":"/voyager/api/configuration","status":200,"body":"bpr-guid-3322365"}

{"status":401}

我试过摆弄Requests library,但无济于事。我是初学者,所以我希望我不需要花几周的时间来学习 OAuth 或 Selenium。

这是我的代码:

from bs4 import BeautifulSoup
import urllib.request

url = "https://www.linkedin.com/mynetwork/invite-connect/connections/"
page = urllib.request.urlopen(url)
soup = BeautifulSoup(page, 'html.parser')
#print(soup)
content_list = soup.find_all('span',class_="mn-connection-card__name t-16 t-black t-bold")
print(content_list)

运行它会返回一个空列表:[],而我期望的是:“Bob McBobface”。

当我print(soup) 时,它只返回一个简短的 HTML 简介,并带有您在上面看到的 401 错误通知。

有什么建议吗?

【问题讨论】:

  • 看起来您正试图访问需要某种授权的“私人”信息?

标签: python html beautifulsoup python-requests


【解决方案1】:

LinkedIn 要求您登录才能访问该页面。您似乎没有在通话中添加任何身份验证。 401 通常是身份验证错误,因此会在此处排列。

This question answers how to authenticate properly with LinkedIn

【讨论】:

  • 这更像是一条评论
  • 这个问题似乎是在问“为什么会这样?”,而不是“如何进行身份验证?”,但我已经包含了一个类似问题/答案的链接,关于如何进行身份验证以进行身份​​验证更完整。谢谢。
  • 嗨,Erik,我实际上在我的帖子中链接到了那个。问题是这段代码不起作用:“csrf = soup.find(id="loginCsrfParam-login")['value']”。该网页的 HTML 不包含“loginCsrfParam-login”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多