【问题标题】:How do I scrape from a webpage in python that populates using Google Tag Manager and Google Analytics?如何从使用 Google 标签管理器和 Google Analytics 填充的 python 网页中抓取?
【发布时间】:2023-02-24 02:10:55
【问题描述】:

我正试图在这个网站上抓取表格: https://www.tradingview.com/markets/stocks-usa/earnings/

据我所知,该网站的表格最初加载的数字不正确。然后它使用 javascript、谷歌标签管理器和谷歌分析来填充正确的值。我想在表更新后抓取正确的值。

这是我尝试过的:

import requests
from bs4 import BeautifulSoup

url = 'https://www.tradingview.com/markets/stocks-usa/earnings/'
page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')

b = soup.find_all('td', class_='tv-data-table__cell tv-screener-table__cell tv-screener-table__cell--big')
c_list = []

for c in b:
  c_list.append(c.text.strip())


c_list

今天它回来了,

['250.813B', '2.43', '1.82', '0.13', '7.87', '35.648B', '29.114B', '2023-02-23', '2022-12-30',...]

这些值不正确,是在表更新之前加载到网站上的值。

有任何想法吗?我希望这可以通过简单的 python 工具来完成,而不必使用我无权访问的谷歌分析 API...

【问题讨论】:

    标签: python web-scraping python-requests google-analytics google-tag-manager


    【解决方案1】:

    您正在使用请求来获取原始页面源。您现在必须渲染页面,这意味着获取 html 引用的资源、执行 JS 和构建 DOM。

    在 Node 中有更优雅的解决方案,因为 Node 已经不仅是 JS,而且是 V8。但是,对于其他语言,在大多数情况下,您必须加载无头浏览器。

    为此,我建议使用Selenium。请记住,Selenium 是一个巨大的库。你几乎不会用到它的 5%。然而,它也非常强大,并且是回归测试自动化的行业标准,因此它有能力解决相当多的无头 Web 渲染问题和围绕它的自动化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-21
      • 2022-12-11
      • 2022-01-02
      • 1970-01-01
      • 2019-07-14
      • 1970-01-01
      • 2022-11-24
      • 1970-01-01
      相关资源
      最近更新 更多