---
title: "2026年如何用 Python 抓取 Google Finance 数据"
description: "学习如何用 Python 抓取 Google Finance 数据，本指南提供完整代码、工具与技巧，帮助您可靠地提取股票和市场数据。"
url: "https://marsproxies.cn/blog/scrape-google-finance/"
---

- [EN ](https://marsproxies.com/blog/scrape-google-finance/ "英语")
  [CN](https://marsproxies.cn/blog/scrape-google-finance/ "语言切换器")

[联系销售](https://marsproxies.cn/contact-sales/) [注册](https://dashboard.marsproxies.com/register/) [登录](https://dashboard.marsproxies.com/login/)

[联系销售](https://marsproxies.cn/contact-sales/) [注册](https://dashboard.marsproxies.com/register/) [登录](https://dashboard.marsproxies.com/login/)

[联系销售](https://marsproxies.cn/contact-sales/)

[登录](https://dashboard.marsproxies.com/login/) [注册](https://dashboard.marsproxies.com/register/)

- [EN ](https://marsproxies.com/blog/scrape-google-finance/ "英语")
  [CN](https://marsproxies.cn/blog/scrape-google-finance/ "语言切换器")

[返回博客](https://marsproxies.cn/blog/) 2026年4月27日

# 2026年如何用 Python 抓取 Google Finance 数据

[操作指南](https://marsproxies.cn/blog/category/how-to/)

\-

目录

1. [为什么要抓取 Google Finance 数据？](https://marsproxies.cn/blog/scrape-google-finance/#b-%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E6%8A%93%E5%8F%96-google-finance-%E6%95%B0%E6%8D%AE)
2. [用 Python 抓取 Google Finance 数据的工具与库](https://marsproxies.cn/blog/scrape-google-finance/#b-%E7%94%A8-python-%E6%8A%93%E5%8F%96-google-finance-%E6%95%B0%E6%8D%AE%E7%9A%84%E5%B7%A5%E5%85%B7%E4%B8%8E%E5%BA%93)
3. [用 Python 抓取 Google Finance 数据：分步指南](https://marsproxies.cn/blog/scrape-google-finance/#b-%E7%94%A8-python-%E6%8A%93%E5%8F%96-google-finance-%E6%95%B0%E6%8D%AE%E5%88%86%E6%AD%A5%E6%8C%87%E5%8D%97)
4. [让爬虫实现自动化与规模化运行](https://marsproxies.cn/blog/scrape-google-finance/#b-%E8%AE%A9%E7%88%AC%E8%99%AB%E5%AE%9E%E7%8E%B0%E8%87%AA%E5%8A%A8%E5%8C%96%E4%B8%8E%E8%A7%84%E6%A8%A1%E5%8C%96%E8%BF%90%E8%A1%8C)
5. [常见问题与解决方法](https://marsproxies.cn/blog/scrape-google-finance/#b-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E4%B8%8E%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95)
6. [用于数据提取的 Google Finance 替代方案](https://marsproxies.cn/blog/scrape-google-finance/#b-%E7%94%A8%E4%BA%8E%E6%95%B0%E6%8D%AE%E6%8F%90%E5%8F%96%E7%9A%84-google-finance-%E6%9B%BF%E4%BB%A3%E6%96%B9%E6%A1%88)
7. [Google Finance 是否有官方 API？](https://marsproxies.cn/blog/scrape-google-finance/#b-google-finance-%E6%98%AF%E5%90%A6%E6%9C%89%E5%AE%98%E6%96%B9-api)

\-

核心要点：

- Google Finance 没有公开 API，需要通过数据抓取或借助 Google Sheets 集成来获取数据。

* 由于 Google Finance 的核心价格数据以静态 HTML 形式呈现，BeautifulSoup 因速度快而备受青睐。

- 数据抓取适合用于监测市场情绪和短期价格波动。

关注股市的人都知道，速度和准确性比什么都重要。Google Finance 是一个庞大的金融数据库，可以帮助交易者抢占先机。

使用爬虫可以采集当前市场快照和热门股票榜单，不过历史价格数据最好通过 yfinance 库获取。Python 凭借简洁的代码即可轻松处理[数据抓取](https://marsproxies.cn/use-cases/web-scraping/)任务，是完成此类工作的理想工具之一。

您将学习如何抓取 Google Finance 数据，把杂乱的页面转换成整洁可用的文件，我们还会提供具体步骤，教您用 Python 脚本高效完成 Google Finance 数据抓取。

## 为什么要抓取 Google Finance 数据？

Google Finance 是一个免费网站，可以查询数千家公司的财务指标，也是覆盖全球金融市场的实时数据中心。

正如[抓取 Google Maps 数据](https://marsproxies.cn/blog/scrape-google-maps/)可以帮助企业追踪本地竞争对手和店铺位置，抓取 Google Finance 数据则能提供宏观层面的数据，帮助理解这些企业所处的更广泛经济环境。

投资者用它追踪股价变化，或阅读全球最新财经新闻。由于这些数据是公开可查的，任何人都能查看，但通过数据抓取可以更轻松地进行分析。

您可以用提取的数据搭建自己的控制台、发现新的市场趋势等。交易者和开发者常常抓取 Google Finance 数据来追踪投资组合趋势，从而避免企业级数据源的高昂成本。

## 用 Python 抓取 Google Finance 数据的工具与库

搭建 Google Finance 爬虫需要几个关键的 Python 库来处理不同任务：

- **Requests 和 BeautifulSoup：**&#x9002;用于简单页面，用于下载 HTML 并查找所需数字。
- **Selenium 和 Playwright：**&#x5982;果需要查看图表等交互元素，这些工具更适合用于[Python 数据抓取](https://marsproxies.cn/blog/python-web-scraping/)。

请注意，标准的抓取请求常常会被高级机器人检测拦截，您很可能需要借助*playwright-stealth*包来防止 Google 识别您的自动化浏览器。如果在抓取过程中遇到 CAPTCHA 验证，请参阅我们的[CAPTCHA 绕过方法指南](https://marsproxies.cn/blog/bypass-captcha/)获取实用解决方案。

如果您正在构建更大型的项目，使用[Python 中的 Scrapy](https://marsproxies.cn/blog/scrapy-python/)可以帮助您处理复杂的 Google Finance 页面。若要加快解析速度，可以[借助 lxml](https://marsproxies.com/blog/lxml-tutorial/)来提升数据提取的效率。

## 用 Python 抓取 Google Finance 数据：分步指南

配置环境是自动获取 Google Finance 数据的第一步。您需要先在电脑上安装 Python，并安装*Requests、BeautifulSoup4*和*Playwright*等几个库：

```javascript
pip install requests beautifulsoup4 playwright
playwright install
```

安装好这些库后，您就可以编写脚本，通过定位特定的 HTML 标签来[抓取](https://marsproxies.cn/blog/google-scraping/) Google Finance 的数据。

请注意，Google Finance 的网址通常遵循 SYMBOL:MARKET 格式（例如 AAPL:NASDAQ）。要获取价格变化，您需要查找 Google Finance 用于显示数字的类名或 ARIA 标签：

```python
import requests
from bs4 import BeautifulSoup

session = requests.Session( )
session.headers.update( {
    "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" ,
    "Accept-Language" : "en-US,en;q=0.9" ,
} )
session.cookies. set ( "CONSENT" , "PENDING+987" , domain= ".google.com" )
session.cookies. set ( "SOCS" , "CAESHAgBEhJnd3NfMjAyMzA4MTAtMF9SQzIaAmVuIAEaBgiA_LyaBg" , domain= ".google.com" )

url = "https://www.google.com/finance/quote/AAPL:NASDAQ?hl=en"
page = session.get(url)
soup = BeautifulSoup(page.content, 'html.parser' )

price = soup.find( "div" , class_= "YMlKec fxKbKc" )
print ( f"Price:  {price.text if price else 'N/A' } " )
```

与简单的 GET 请求不同，我们使用会话，因为否则 Google Finance 会返回 Cookie 同意表单。通&#x8FC7;*.Session()*&#x65B9;法，我们可以发送已完成同意确认的[请求](https://marsproxies.cn/blog/python-requests-timeout/)，从而获取真正的页面内容。

部分 Google Finance 数据要在页面完全加载后才会显示。[Playwright](https://marsproxies.cn/blog/playwright-vs-puppeteer/)是一种无头浏览器，可以捕获这些内容：

```python
from playwright.sync_api import sync_playwright

with sync_playwright( ) as p:
    browser = p.chromium.launch(headless= True )
    context = browser.new_context( )

    context.add_cookies( [
        {
            "name" : "CONSENT" ,
            "value" : "PENDING+987" ,
            "domain" : ".google.com" ,
            "path" : "/"
        } ,
        {
            "name" : "SOCS" ,
            "value" : "CAESHAgBEhJnd3NfMjAyMzA4MTAtMF9SQzIaAmVuIAEaBgiA_LyaBg" ,
            "domain" : ".google.com" ,
            "path" : "/"
        }
    ] )

    page = context.new_page( )
    page.goto( "https://www.google.com/finance/quote/AAPL:NASDAQ?hl=en" )

    page.wait_for_selector( "div.Yfwt5" , timeout= 10000 )

    articles = page.locator( "div.yY3Lee" ) . all ( )

    for article in articles:
        headline = article.locator( "div.Yfwt5" ) .inner_text( )
        source = article.locator( "div.sfyJob" ) .inner_text( )
        time_ago = article.locator( "div.Adak" ) .inner_text( )
        link = article.locator( "a" ) .first.get_attribute( "href" )

        print ( f" {headline} " )
        print ( f"   {source}  •  {time_ago} " )
        print ( f"   {link} \n" )

    browser.close( )
```

有时网站无法加载，或者数据抓取脚本会执行失败。您应该使用 try 和 except 代码块来捕获这些错误。如果请求失败，代码应先等待，再重新抓取 Google Finance 数据，这样即使出现小故障，历史数据采集也能持续进行。

以下是一套完整脚本，用于抓取 Google Finance 数据并保存提取结果：

```python
import requests
from bs4 import BeautifulSoup
import time


def create_session ( ) :
    """Create a session with consent cookies to bypass GDPR wall."""
    session = requests.Session( )
    session.headers.update( {
        "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" ,
        "Accept-Language" : "en-US,en;q=0.9" ,
        "Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" ,
    } )
    session.cookies. set ( "CONSENT" , "PENDING+987" , domain= ".google.com" )
    session.cookies. set ( "SOCS" , "CAESHAgBEhJnd3NfMjAyMzA4MTAtMF9SQzIaAmVuIAEaBgiA_LyaBg" , domain= ".google.com" )
    return session


def get_google_finance_data (session, ticker, max_retries= 3 ) :
    """Scrape price and news headlines for a ticker."""
    url = f"https://www.google.com/finance/quote/ {ticker} ?hl=en"

    for attempt in range (max_retries) :
        try :
            response = session.get(url, timeout= 10 )
            if response.status_code != 200 :
                print ( f"Attempt  {attempt + 1 } : Status  {response.status_code} " )
                time.sleep( 2 )
                continue

            soup = BeautifulSoup(response.text, 'html.parser' )

            # Check if we hit the consent wall
            if "Before you continue" in soup.get_text( ) [ : 500 ] :
                print ( f"Attempt  {attempt + 1 } : Hit consent wall" )
                time.sleep( 2 )
                continue

            # Extract price
            price_element = soup.find( "div" , class_= "YMlKec fxKbKc" )
            price = price_element.text if price_element else None

            # Extract news headlines
            headlines = [ ]
            articles = soup.find_all( "div" , class_= "yY3Lee" )
            for article in articles:
                headline_el = article.find( "div" , class_= "Yfwt5" )
                source_el = article.find( "div" , class_= "sfyJob" )
                time_el = article.find( "div" , class_= "Adak" )
                link_el = article.find( "a" , href= True )

                if headline_el:
                    headlines.append( {
                        "title" : headline_el.text,
                        "source" : source_el.text if source_el else None ,
                        "time" : time_el.text if time_el else None ,
                        "url" : link_el[ "href" ] if link_el else None
                    } )

            return { "price" : price, "headlines" : headlines}

        except Exception as e:
            print ( f"Attempt  {attempt + 1 } : Error scraping  {ticker} :  {e} " )
            time.sleep( 2 )

    return None


# Main
session = create_session( )
tickers = [ "AAPL:NASDAQ" , "GOOGL:NASDAQ" , "MSFT:NASDAQ" ]

for t in tickers:
    data = get_google_finance_data(session, t)

    if data:
        print ( f"\n {t} :  {data[ 'price' ] } " )
        for h in data[ "headlines" ] [ : 3 ] :
            print ( f"  •  {h[ 'title' ] [ : 70] } ..." )
            print ( f"     {h[ 'source' ] }  •  {h[ 'time' ] } " )
    else :
        print ( f"\n {t} : Failed after retries" )

    time.sleep( 3 )
```

## 让爬虫实现自动化与规模化运行

脚本调试成功后，您会希望让它自动运行，而不用每次手动启动。可以使用 Cron 定时任务或 Task Scheduler，在每天金融市场开盘前自动抓取 Google Finance 数据。

您可以将提取的数据保存为 CSV 文件，或[导入 PostgreSQL 数据库](https://blog.coupler.io/how-to-import-your-business-data-into-postgresql/)以便后续使用。许多人更倾向于将结果导入 Google Sheets，因为这样方便与团队共享。

为避免被封禁，您需要使用代理轮换并频繁更换请求头，这样可以让数据抓取行为在目标网站看来更接近真实用户浏览 Google Finance 的行为。

## 常见问题与解决方法

数据抓取中最大的障碍是 IP 地址被 Google Finance 封禁。如果请求发送得太快太多，网站就会停止响应您的 Google Finance 爬虫。

另一个问题是 Google Finance 页面偶尔会改版，导致代码失效。如果脚本在页面完全加载前就开始读取，提取的数据可能会不完整或被截断。

解决方法是放慢抓取速度，并在发现数据缺失时及时更新选择器。完善的数据抓取脚本始终应包含应对异常情况的方案。

## 用于数据提取的 Google Finance 替代方案

如果 Google Finance 让您头疼不已，可以考虑其他财经数据来源。Yahoo Finance 的页面通常更便于用数据抓取工具读取。您也可以付费使用金融数据 API，直接获取结构化结果，无需解析 HTML。

有些开发者会使用 Google Sheets 函数来获取历史数据，无需编写任何代码。如果您更倾向于代码方案，*yfinance*是一个很适合获取历史财务数据的库。

使用数据抓取 API 也能节省时间，因为它会替您处理代理和封禁问题。这些替代方案可以确保您始终能获取最新的市场趋势。

## Google Finance 是否有官方 API？

许多开发者都想知道，是否有官方的 Google Finance API 可以用于应用开发。事实是，官方 API 早在多年前就已下线，至今未恢复。

如今，要在脚本中获取 Google Finance 数据，只能依赖数据抓取或非官方方法。有些人会利用 Google Finance 的 SERP 结果快速查数字，但这种方式并不总是可靠。

由于没有官方的 Google Finance API，搭建自定义的 Google Finance 爬虫是更合适的选择。只要采用恰当的数据抓取技术，您仍然能获取大量公开数据。您也可以试用我们的[Google 代理](https://marsproxies.cn/use-cases/google-proxies/)。

可以抓取 Google Finance 数据吗？

可以，您可以使用 BeautifulSoup、Playwright 等 Python 库来抓取 Google Finance 数据。这是在没有官方 API 的情况下获取财务指标的常见方式。

可以从 Google Finance 抓取哪些数据？

您可以从该网站获取股价变化、财经新闻和历史数据，屏幕上显示的大部分内容都可以被提取。

抓取 Google Finance 数据是否合法？

从技术层面看，抓取行为违反了 Google 的服务条款。尽管美国最高法院在 hiQ 诉 LinkedIn 一案中对公开数据的抓取予以保护，但 Google 采用了复杂的反机器人机制，使抓取变得困难。

Google Finance 有 API 吗？

目前没有面向公众开放的官方 Google Finance API，大多数人会通过抓取 Google Finance 页面或使用 Google Sheets 来获取所需数字。

可以改用 Google Sheets 的 GOOGLEFINANCE 函数吗？

可以，Google Sheets 内置了一个函数，功能类似于简化版的 Google Finance API，非常适合获取历史股价，但详细程度不及自定义数据抓取。

可以抓取历史数据吗？

虽然可以抓取当前快照，但历史数据通常以 Canvas 图像形式呈现，抓取难度较大。对于历史数据集，使用*yfinance*库或 Sheets 中的 GOOGLEFINANCE 函数会更加高效。

[了解更多](https://dashboard.marsproxies.com/register/)

\-

作者

[Lukas Tilkevicius 增长与合作经理](https://marsproxies.cn/blog/authors/lukas-tilkevicius/)

目录

1. [为什么要抓取 Google Finance 数据？](https://marsproxies.cn/blog/scrape-google-finance/#b-%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E6%8A%93%E5%8F%96-google-finance-%E6%95%B0%E6%8D%AE)
2. [用 Python 抓取 Google Finance 数据的工具与库](https://marsproxies.cn/blog/scrape-google-finance/#b-%E7%94%A8-python-%E6%8A%93%E5%8F%96-google-finance-%E6%95%B0%E6%8D%AE%E7%9A%84%E5%B7%A5%E5%85%B7%E4%B8%8E%E5%BA%93)
3. [用 Python 抓取 Google Finance 数据：分步指南](https://marsproxies.cn/blog/scrape-google-finance/#b-%E7%94%A8-python-%E6%8A%93%E5%8F%96-google-finance-%E6%95%B0%E6%8D%AE%E5%88%86%E6%AD%A5%E6%8C%87%E5%8D%97)
4. [让爬虫实现自动化与规模化运行](https://marsproxies.cn/blog/scrape-google-finance/#b-%E8%AE%A9%E7%88%AC%E8%99%AB%E5%AE%9E%E7%8E%B0%E8%87%AA%E5%8A%A8%E5%8C%96%E4%B8%8E%E8%A7%84%E6%A8%A1%E5%8C%96%E8%BF%90%E8%A1%8C)
5. [常见问题与解决方法](https://marsproxies.cn/blog/scrape-google-finance/#b-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E4%B8%8E%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95)
6. [用于数据提取的 Google Finance 替代方案](https://marsproxies.cn/blog/scrape-google-finance/#b-%E7%94%A8%E4%BA%8E%E6%95%B0%E6%8D%AE%E6%8F%90%E5%8F%96%E7%9A%84-google-finance-%E6%9B%BF%E4%BB%A3%E6%96%B9%E6%A1%88)
7. [Google Finance 是否有官方 API？](https://marsproxies.cn/blog/scrape-google-finance/#b-google-finance-%E6%98%AF%E5%90%A6%E6%9C%89%E5%AE%98%E6%96%B9-api)

分类

- [产品动态](https://marsproxies.cn/blog/category/product-news/)

  [5](https://marsproxies.cn/blog/category/product-news/)
- [产品对比](https://marsproxies.cn/blog/category/comparisons/)

  [8](https://marsproxies.cn/blog/category/comparisons/)
- [反检测解决方案](https://marsproxies.cn/blog/category/antidetect-solution/)

  [3](https://marsproxies.cn/blog/category/antidetect-solution/)
- [操作指南](https://marsproxies.cn/blog/category/how-to/)

  [119](https://marsproxies.cn/blog/category/how-to/)
- [球鞋抢购机器人](https://marsproxies.cn/blog/category/sneaker-bots/)

  [2](https://marsproxies.cn/blog/category/sneaker-bots/)
- [资讯](https://marsproxies.cn/blog/category/insights/)

  [89](https://marsproxies.cn/blog/category/insights/)

## 相关文章

[操作指南](https://marsproxies.cn/blog/category/how-to/)

### [如何在 JavaScript 中读取 JSON 文件（附示例）](https://marsproxies.cn/blog/javascript-read-json-file/)

本文介绍如何使用 fetch API、FileReader、ES modules 和 Node.js 在 JavaScript 中读取 JSON 文件，并提供简单示例和常见问题排查方法。

[Lukas Tilkevicius 增长与合作经理](https://marsproxies.cn/blog/authors/lukas-tilkevicius/)

2026年10月21日

[操作指南](https://marsproxies.cn/blog/category/how-to/)

### [2026年如何绕过 Netflix 家庭限制](https://marsproxies.cn/blog/bypass-netflix-household/)

了解如何合法且有效地绕过 Netflix 的家庭限制，在2026年继续实现跨地点共享账户

[Lukas Tilkevicius 增长与合作经理](https://marsproxies.cn/blog/authors/lukas-tilkevicius/)

2026年10月15日

[操作指南](https://marsproxies.cn/blog/category/how-to/)

### [如何绕过 YouTube TV 的地区限制](https://marsproxies.cn/blog/how-to-get-around-youtube-tv-location/)

别让 YouTube TV 的地理限制困扰您！参考我们的专业技巧，随时随地畅享您喜爱的节目和电影。

[Lukas Tilkevicius 增长与合作经理](https://marsproxies.cn/blog/authors/lukas-tilkevicius/)

2026年10月14日
