市场数据是金融行业中的重要组成部分,获取准确的数据信息对于投资和决策至关重要。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)
以上代码会首先导入所需库。之后定义了三个函数,分别用于获取网页信息、股票数据和沪深300成分股列表。根据输入的股票代码,get_stock_data函数会返回该股票的历史交易数据。通过循环遍历沪深300成分股,可以获取整个沪深300指数的历史交易数据。最后将股票数据存入DataFrame,并打印出来。