【问题标题】:Handling an infinite scroll UI in BeautifulSoup在 BeautifulSoup 中处理无限滚动 UI
【发布时间】:2020-01-19 15:12:18
【问题描述】:

我正在研究如何抓取 Linkedin 源 (https://www.linkedin.com/mynetwork/invite-connect/connections/),但无限滚动似乎是不可能的。如何处理?我不想使用 Selenium(想稍后实现为 Web 服务)。

import bs4
from bs4 import BeautifulSoup
import requests

def scraping(webpage):
    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
    response= requests.get(str(webpage), headers=headers)
    soup = BeautifulSoup(response.text,"html.parser")
    print(soup)

scraping('https://www.linkedin.com/mynetwork/invite-connect/connections')

【问题讨论】:

    标签: python beautifulsoup


    【解决方案1】:

    BeautifulSoup 只能对您提供的 HTML 有所帮助;您需要让 LinkedIn 返回更多 HTML。内容不在您拥有的 HTML 中,因此您必须获取它。浏览器可能正在运行 LinkedIn 的 javascript 以注意到您正在滚动,因此它需要获取更多内容并在页面中注入更多 HTML - 您需要以某种方式复制此内容获取。

    坏消息:BeautifulSoup 不知道 API 或 javascript。您将需要另一个工具。

    好消息:有这方面的工具!您当然可以使用 Selenium,这可能是解决此问题的最简单方法,因为它可以很好地复制浏览器环境来实现这些目的。

    如果您绝对不使用 Selenium,我建议您深入了解 LinkedIn 网站,看看您是否可以找出哪些 javascript 位负责获取更多数据,并复制它们发出的网络请求,以及然后自己解析这些数据。

    不过,对于大多数人来说,Selenium 将是正确的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-31
      • 2014-03-04
      • 2017-10-15
      • 2017-08-28
      • 1970-01-01
      相关资源
      最近更新 更多