市场数据是金融行业中的重要组成部分,获取准确的数据信息对于投资和决策至关重要。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,并打印出来。