爬取价值大师线:使用 Python 获取股票估值比率数据

个人认为价值大师提供的大师价值线具有一定的参考价值。因此,我编写了以下代码,用于爬取价值大师网站的价值大师线。如果您对其他数据感兴趣,比如格雷厄姆估值或彼得林奇公允价值,也可以使用此方法进行爬取。

需要注意的是,下面的代码仅适用于爬取单只股票的价值大师线。如果您有兴趣爬取指数成分股或自定义股票,请关注此后的文章。

代码

import requests  # 导入requests库,用于发送HTTP请求
import re  # 导入re库,用于正则表达式匹配
from bs4 import BeautifulSoup  # 导入BeautifulSoup库,用于解析HTML文档
import pandas as pd  # 导入pandas库,用于数据处理

def get_valuation_ratios(code):
    # 构造URL,其中code是股票代码
    url = f'https://www.gurufocus.cn/stock/{code}/term/gf_value'
    # 发送HTTP请求,获取响应内容
    response = requests.get(url)
    # 解析HTML文档
    soup = BeautifulSoup(response.content, 'html.parser')

    # 获取大师价值线
    element_jzx = soup.select_one('#term-page-title').text.strip()
    element_jzx = re.findall("\d+\.\d+", element_jzx)[0]

    # 获取名称
    element_mc = soup.select_one('html body div div main div:nth-child(1) div:nth-child(2) div:nth-child(1) div:nth-child(1) div:nth-child(2) div:nth-child(1) h1 span:nth-child(1)').text.strip()

    # 获取现价
    element_xj = soup.select_one('html body div div main div:nth-child(1) div:nth-child(2) div:nth-child(1) div:nth-child(1) div:nth-child(2) div:nth-child(2)')
    element_xj.span.decompose()  # 去掉span标签
    element_xj = re.findall(r'\d+\.\d+', element_xj.text.strip())[0]  # 只保留数字和小数点

    # 拼接链接
    link = f'https://www.gurufocus.cn/stock/{code}/summary'

    # 创建一个pandas DataFrame来保存比率
    ratios = pd.DataFrame({
        '代码': [f'=HYPERLINK("{link}", "{code}")'],  # 使用HYPERLINK函数创建超链接
        '名称': [element_mc],
        '大师价值': [element_jzx],
        '现价': [element_xj],
    })

    # 将“代码”列设置为索引
    ratios = ratios.set_index('代码')

    return ratios

# 调用get_valuation_ratios函数,获取股票估值比率数据,并保存到CSV文件中
get_valuation_ratios('aapl').to_csv(f'价值.csv', index=True, encoding='utf-8-sig')

代码解释说明

这段代码的主要功能是从 GuruFocus 网站获取股票的估值比率数据,并将结果保存到 CSV 文件中。它使用了 requests 库发送 HTTP 请求,使用 BeautifulSoup 库解析 HTML 文档,使用 pandas 库处理数据。具体来说,它的实现过程如下:

  1. 构造 URL,其中 code 是股票代码。
  2. 发送 HTTP 请求,获取响应内容。
  3. 解析 HTML 文档,使用 select_one 方法获取 HTML 元素。
  4. 使用正则表达式匹配出大师价值线和现价。
  5. 拼接链接,创建一个 pandas DataFrame 来保存比率。
  6. 将“代码”列设置为索引。
  7. 将结果保存到 CSV 文件中。

总的来说,这段代码实现了一个简单的爬虫程序,可以用于获取股票的估值比率数据。需要注意的是,这段代码只适用于 GuruFocus 网站,如果要爬取其他网站的数据,需要根据具体情况进行修改。同时,需要遵守网站的爬虫规则,不要过度请求,以免被封 IP。

  1. 爬取价值大师线:使用 Python 获取股票估值比率数据
  2. GuruFocus网站爬虫:获取股票大师价值线和现价
  3. 股票估值比率数据抓取:Python实现GuruFocus网站爬虫程序
  4. 一键获取股票大师价值线和现价:使用Python实现简单爬虫程序
  5. 数据抓取与分析:Python实现股票估值比率数据的自动化获取

#金融 #数据分析 #爬虫 #股票 #投资

THE END