python 获取东方财富 A股实时行情

import time
import akshare as ak
# 打印数据
while 1:
    time.sleep(3)
    # 获取东方财富网-沪深京 A 股-实时行情
    df = ak.stock_zh_a_spot_em()
    print(df)
    continue
    # 筛选特定股票的数据
    maotai_data = df[df['代码'] == '000100']
    # 打印特定股票的实时行情数据
    print(maotai_data)
    print(maotai_data['名称'])
    #for i in maotai_data :
        #print(i)

运行效果

        序号      代码    名称    最新价  ...    涨速  5分钟涨跌  60日涨跌幅  年初至今涨跌幅
0        1  920108   N宏海  19.28  ... -0.05   1.53  246.14   246.14
1        2  832876  慧为智能  27.01  ...  0.00   0.00    4.73    65.60
2        3  839946  华阳变速   8.21  ...  0.00   0.00  -17.49    29.29
3        4  833533  骏创科技  42.41  ... -0.07   0.66   69.64    89.33
4        5  688620   安凯微  17.99  ...  0.00   0.00   94.91    79.00
...    ...     ...   ...    ...  ...   ...    ...     ...      ...
5680  5681  301498  乖宝宠物  89.43  ...  0.06   0.36   38.97    14.19
5681  5682  002398  垒知集团   5.13  ... -0.19   0.39   19.86    16.86
5682  5683  000573  粤宏远A   4.40  ... -0.23   0.23   52.25    47.16
5683  5684  000882  华联股份   2.75  ...  0.00   0.00   36.82    32.21
5684  5685  300307  慈星股份   8.58  ... -0.23  -0.35    7.52     4.13

[5685 rows x 23 columns]

### 使用Python东方财富网抓取票数据进行选分析 为了实现这一目标,可以采用`requests`库来发送HTTP请求并获取网页内容,利用`BeautifulSoup`或`lxml`解析HTML文档,提取所需的数据。对于更复杂的情况,比如JavaScript动态加载的内容,则可能需要用到像`selenium`这样的工具模拟浏览器行为。 #### 安装必要的库 首先安装所需的第三方库: ```bash pip install requests beautifulsoup4 lxml pandas selenium openpyxl ``` #### 获取静态页面中的表格数据 如果东方财富网上部分票列表是以静态表格形式展示的话: ```python import requests from bs4 import BeautifulSoup import pandas as pd url = 'http://quote.eastmoney.com/center/gridlist.html#hs_a_board' # 示例URL,请替换为目标网址 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" } response = requests.get(url=url, headers=headers) if response.status_code == 200: soup = BeautifulSoup(response.text, features='html.parser') table_body = soup.find('tbody') # 查找包含票信息的表体 rows = [] for tr in table_body.find_all('tr'): row_data = [td.text.strip() for td in tr.find_all('td')] rows.append(row_data) df = pd.DataFrame(rows, columns=['代码', '名称', '最新价', ...]) # 填充实际列名 else: print(f"Failed to fetch data with status code {response.status_code}") ``` 上述方法适用于简单的HTML结构,但对于通过AJAX等方式异步更新的部分则不适用[^1]。 #### 处理由JavaScript渲染的数据 当遇到依赖于JavaScript执行才能显示完全的信息时,推荐使用自动化测试框架Selenium配合WebDriver驱动器操作真实浏览器实例访问网站,并等待页面完成加载后再读取DOM元素内的文本节点值作为最终结果集的一部分。 ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver_path = r'C:\path\to\chromedriver.exe' browser = webdriver.Chrome(executable_path=driver_path) try: browser.get('https://example.eastmoney.com/path/to/data') wait = WebDriverWait(browser, timeout=10).until( EC.presence_of_element_located((By.CSS_SELECTOR, '.data-table')) ) elements = browser.find_elements(By.TAG_NAME, value="tr") stock_info_list = [] for element in elements[1:]: cells = element.find_elements(By.TAG_NAME, value="td") single_stock_dict = {} for index, cell in enumerate(cells): key_name = f'field_{index}' # 替换成具体的字段含义 single_stock_dict[key_name] = cell.text stock_info_list.append(single_stock_dict) finally: browser.quit() df_js_rendered = pd.DataFrame(stock_info_list) print(df_js_rendered.head()) ``` 此段脚本展示了如何启动ChromeDriver进程打开指定链接地址对应的网页资源文件夹路径下的空白标签页;设置最长超时时长为十秒直至预期条件满足为止——即存在具有特定CSS选择器特征的目标对象存在于当前视图范围内;遍历所有行级单元格组件收集其内部纯文字描述形成字典序列化后的DataFrame对象以便后续处理分析工作开展.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值