雅虎财经是追踪股价、财经新闻和公司数据的热门平台之一。它拥有超过 335 亿月活跃用户,是一个结构化、有价值的信息来源。 实时财务数据.
在本指南中,您将学习如何使用 Python 从 Yahoo Finance 中提取数据,以及避免反机器人措施的最佳实践。
TL; DR:
- 学习如何使用 Python 抓取雅虎财经数据 Crawlbase Crawling API.
- 涵盖股票价格、价格变化和市场时间戳提取。
- 包含完整的示例代码和 Crawlbase 集成技巧。
以下是一段关于如何从雅虎财经抓取财务数据的简短视频:
目录
7. 完整的 Python 代码:Yahoo Finance Scraper
1. 抓取雅虎财经数据所需的工具(Python + Crawlbase)
一旦 Python 安装完成后,你也确定了自己喜欢的 IDE,接下来就可以安装抓取雅虎财经数据所需的工具了。以下命令将安装 Crawlbase Python 库和 Beautifulsoup4
要安装包,只需打开命令提示符 (Windows) 或终端 (macOS/Linux),创建一个要存储 Python 代码的目录,然后使用 pip 命令安装包,如下所示:
1 | 点安装爬虫库 |
2. 如何抓取雅虎财经网页
现在是时候编写代码了。我们首先要编写一个代码来爬取目标网页的完整 HTML 源代码。在这一步中,我们将利用 Crawlbase 包。
首先打开您喜欢的文本编辑器或 IDE 并创建一个新的 Python 文件。为了本指南的目的,我们创建一个名为 scraper.py 从您的终端/控制台:
1 | 触摸刮刀.py |
为了演示,我们将以此为目标 雅虎财经页面。

复制下面的完整代码并阅读解释以理解每个部分:
1 | ,来自 爬行基地 进口 抓取API |
让我们尝试执行代码。您可以再次转到控制台并输入以下命令:
1 | 蟒蛇 scraper.py |
如果成功,您将收到类似于以下内容的响应:

3. 使用 BeautifulSoup 提取页面标题
在本节中,我们现在将重点关注通过抓取雅虎财经网页获得的 HTML 源代码的内容。我们应该首先调用 Beautiful Soup 库来解析 HTML 并将其以 JSON 格式呈现。
1 | 从crawlbase导入CrawlingAPI |
接下来我们需要寻找我们想要提取的数据。搜索公司名称或 标题 第一的。您必须使用浏览器开发人员工具检查网页的结构,或通过突出显示标题、右键单击并选择“检查”选项来查看页面源。

一旦获得了标题元素的行,只需使用 BeautifulSoup 选择器来提取数据即可。以下是编写代码的方法:
1 | DEF 抓取数据(响应): |
该代码首先尝试解析网页的 HTML 内容。它使用 BeautifulSoup 构造函数,传递 HTML 内容 (response['body'])和解析器类型('html.parser').
里面的 try 块中,该函数尝试从解析的 HTML 中提取特定数据。它试图找到一个 <h1> 具有类名的元素 'svelte-ufs8hf' 使用 select_one 方法由美丽汤提供。
一旦找到该元素,它就会检索该元素的文本内容 <h1> 元素并将其分配给变量标题。如果 <h1> 未找到元素, title 被设置为 None.
如果出现错误,它会向控制台打印一条错误消息并返回一个空字典作为后备。
4. 从雅虎财经抓取股票价格
我们要为雅虎财经网页提取的下一个相关数据是金融资产的最新交易价格,或者只是 价格筛选。首先突出显示价格并检查它,如下图所示:

编写代码来提取 Price 元素:
1 | DEF 抓取数据(响应): |
与上面的代码相同,这将使我们能够从完整的 HTML 源代码中提取特定元素,并删除与我们的项目无关的任何数据。
5. 抓取价格变化(上涨/下跌)指标
我们的下一个目标数据是价格变化。该值代表金融资产(例如股票)相对于前收盘价的价格变化。

再次强调,只需突出显示更改价格并获取该元素的适当选择器即可。
1 | DEF 抓取数据(响应): |
6. 获取市场时间戳
最后,我们还将抓取市场时间戳。它指的是计算价格的具体日期。例如,如果您看到“收盘时”后跟日期“19 年 2024 月 19 日”,则表示所提供的信息与 2024 年 XNUMX 月 XNUMX 日资产的收盘价有关。
另请注意,如果显示“开市”,则表示显示的价格是开市时资产开始交易的价格。

突出显示数据并转到检查以获取关联的选择器。让我们再次编写代码以使用 BeautifulSoup 提取数据。
1 | DEF 抓取数据(响应): |
7. 完整的 Python 代码:Yahoo Finance Scraper
为每个目标数据编写选择器后,是时候编译代码并使我们的抓取工具发挥作用了。为了您的方便,我们编译了下面的代码并添加了一些行以将响应保存为 JSON 文件。请随意复制并将其保存到本地计算机:
1 | ,来自 爬行基地 进口 抓取API |
执行代码以获得响应。使用以下命令:
1 | 蟒蛇 scraper.py |
如果成功,它应该提供类似的输出,如下所示:
1 | { |
就在那里。 JSON 格式响应将允许您有效地使用数据。用它来分析股票市场、比较价格等等。这是你的选择。
8. 最后的想法和下一步
您已经完成了关于如何使用 Python 高效构建 Yahoo Finance 数据抓取工具的全面指南, Crawlbase API 和 BeautifulSoup。您已经学习了如何从网页中提取干净且有用的数据,并根据项目或分析对其进行自定义。
本指南中共享的代码可供所有感兴趣的人使用。我们鼓励您积极参与它,因为它对每个人都有用,包括各种开发人员、数据科学家,甚至对于好奇的学习者。您可以自由修改和定制代码以满足您的特定要求。调整它以实现自动化,从其他网站抓取数据,提取不同类型的信息,或添加新功能。
我们建议与 Crawlbase Crawling API,用于处理 IP 轮换、验证码和渲染。
9. 常见问题 (FAQ)
网络抓取从雅虎财经抓取数据是否合法?
是的,网络抓取本身并不违法,但查看并遵守您正在抓取的网站的服务条款非常重要。与许多其他网站一样,雅虎财经可能有关于网络抓取活动的特定条款和条件。请务必熟悉这些条款以避免任何法律问题。
如何从雅虎财经抓取数据?
- 识别要抓取和检查网站的数据
- 选择抓取工具或库以从网页中提取数据
- 使用所选的抓取工具向目标 URL 发送 HTTP GET 请求
- 利用抓取工具的解析功能解析网页的HTML内容
- 根据您的需要,您可以将抓取的数据存储在文件、数据库或数据结构中以供以后分析或直接在应用程序中使用。
我可以使用哪些工具和库来抓取雅虎财经?
Python 中有很多可用于网页抓取的工具和库,包括 BeautifulSoup、Scrapy 和 Selenium。此外,你还可以使用以下 API: Crawlbase API 让您更轻松地访问 Web 数据。选择最适合您的项目需求和技术专长的工具或库。









