Excel 自定义股票,获取价值大师线估值评价数据

上面的两篇文章,分别介绍了爬取价值大师价值线的单只股票数据、中证指数成分股数据,这下我们来读取 Excel 表格中的自定义股票代码,然后再来爬取价值大师网的数据。

内容跟前 2 篇文章差不多,只是加入了读取 Excel 表格的自定义函数,具体内容还是参考前 2 篇文章。

代码

import akshare as ak
import requests
import re
from bs4 import BeautifulSoup
import pandas as pd

# 通过代码,获取价值大师的价值线
def get_valuation_ratios(code):
    url = f'https://www.gurufocus.cn/stock/{code}/term/gf_value'
    response = requests.get(url)
    soup = BeautifulSoup(response.content, 'html.parser')
    
    # 获取大师价值线
    element_jzx = soup.select_one('#term-page-title')
    if element_jzx:
        element_jzx = element_jzx.text.strip()
        element_jzx = re.findall("\d+\.\d+", element_jzx)[0]
    else:
        element_jzx = None
    
    # 获取大师价值估值评价
    element_pj = soup.select_one('#q-app > div > div > main > div:nth-child(3) > div > div.column.term-container.col > div.content-section.q-pa-md.q-mt-sm.q-card.q-card--bordered.q-card--flat.no-shadow > div > div:nth-child(9) > span').text.strip()
    
    # 获取名称
    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}")'],
        '名称': [element_mc],
        '现价': [element_xj],
        '大师价值': [element_jzx],
        '评价': [element_pj],
    })
    
    # 将“代码”列设置为索引
    ratios = ratios.set_index('代码')
    return ratios

# 通过读取excel中的列“代码”,从而获取价值大师价格
def get_all_valuation_ratios_xslx(file_index_code):
    codes = pd.read_excel(file_index_code, sheet_name=0, engine='openpyxl')['代码'].astype(str).tolist() # 读取csv文件,选择“代码”列,并将其转换为列表。
    all_ratios = pd.DataFrame()
    for code in codes:
        ratios = get_valuation_ratios(code) # 假设有一个名为get_valuation_ratios的函数,返回指定股票的估值比率数据。
        all_ratios = pd.concat([all_ratios, ratios])
    return all_ratios

# 填入导出的名称,自定义股票Excel表格的路径
get_all_valuation_ratios_xslx('测试.xlsx').to_csv(f'excel成分股价值大师.csv', index=True, encoding='utf-8-sig')
  1. 一键获取自定义股票 Excel 表格的价值大师价值线数据
  2. 爬取价值大师网站的估值评价数据,助力投资决策
  3. 将Excel表格中的股票代码快速转化为实时价值大师估值数据
  4. 投资必备!自动化爬取价值大师网站股票估值信息
  5. 提高投资效率,Excel表格一键获取股票估值信息

#投资 #股市 #数据分析 #自动化 #财经

THE END