淘先锋技术网

首页 1 2 3 4 5 6 7

市场数据是金融行业中的重要组成部分,获取准确的数据信息对于投资和决策至关重要。Python作为一种强大的编程语言,可以用来爬取市场数据。下面将介绍如何使用Python爬取市场数据。


#导入相关库
import requests
import pandas as pd
from bs4 import BeautifulSoup

#定义函数,爬取网页信息
def get_page(url):
    headers = {
      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
    r = requests.get(url, headers=headers)
    html = r.content
    soup = BeautifulSoup(html, 'html.parser')
    return soup

#获取股票数据
def get_stock_data(code):
    #拼接URL
    url = "http://quotes.money.163.com/trade/lsjysj_" + code + ".html"
    #获取网页信息
    soup = get_page(url)
    #获取表格数据
    table = soup.find('table', {'class': 'table_bg001 border_box limit_sale'}).find('tbody')
    #将表格数据存入列表
    data = []
    for tr in table.find_all('tr'):
        tds = tr.find_all('td')
        #去除多余空格和换行符
        row = [td.text.strip() for td in tds]
        data.append(row)
    #将列表转化为DataFrame
    df = pd.DataFrame(data, columns=["日期", "开盘价", "最高价", "最低价", "收盘价", "涨跌额", "涨跌幅", "成交量", "成交金额"])
    return df

#获取沪深300成分股列表
def get_hs300():
    url = "https://hq.finance.ifeng.com/index.php?app=qQuote&c=stock&a=index&code_1=hz300"
    soup = get_page(url)
    table = soup.find('table', {'class': 'hsl'}).find('tbody')
    hs300 = []
    for tr in table.find_all('tr'):
        td = tr.find_all('td')[1]
        hs300.append(td.text.strip())
    return hs300

#遍历沪深300成分股,获取股票数据
def get_hs300_data():
    hs300 = get_hs300()
    for code in hs300:
        df = get_stock_data(code)
        print(code)
        print(df)

python爬市场数据

以上代码会首先导入所需库。之后定义了三个函数,分别用于获取网页信息、股票数据和沪深300成分股列表。根据输入的股票代码,get_stock_data函数会返回该股票的历史交易数据。通过循环遍历沪深300成分股,可以获取整个沪深300指数的历史交易数据。最后将股票数据存入DataFrame,并打印出来。