用python代码实现爬取东方财富网上的数据,程序要有数据爬取、存储、展示过程。
时间: 2023-07-15 22:14:36 浏览: 764
好的,以下是一个简单的示例程序,可以爬取东方财富网上的股票数据,存储到CSV文件中,并且可以展示出来:
```python
import requests
from bs4 import BeautifulSoup
import csv
# 获取股票数据
def get_stock_data(stock_code):
url = f"http://quote.eastmoney.com/{stock_code}.html"
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')
stock_name = soup.select_one(".name > h1").text.strip() # 股票名称
current_price = soup.select_one(".price > strong").text.strip() # 当前价格
change_percent = soup.select_one(".pricechange > span").text.strip() # 涨跌幅
return [stock_code, stock_name, current_price, change_percent]
# 存储到CSV文件
def save_to_csv(data, file_path):
with open(file_path, 'w', newline='', encoding='utf-8-sig') as f:
writer = csv.writer(f)
writer.writerow(['股票代码', '股票名称', '当前价格', '涨跌幅'])
for row in data:
writer.writerow(row)
# 读取CSV文件并展示数据
def show_data(file_path):
with open(file_path, 'r', encoding='utf-8-sig') as f:
reader = csv.reader(f)
for row in reader:
print(row)
if __name__ == '__main__':
stock_codes = ['sh600519', 'sh601318', 'sz000651'] # 要获取的股票代码
data = []
for stock_code in stock_codes:
data.append(get_stock_data(stock_code))
save_to_csv(data, 'stock_data.csv')
show_data('stock_data.csv')
```
上述代码首先定义了三个函数,分别是 `get_stock_data` 用于获取股票数据, `save_to_csv` 用于将数据存储到CSV文件中, `show_data` 用于读取CSV文件并展示数据。
在程序的主函数中,我们定义了要获取的股票代码列表,然后循环遍历每个股票,调用 `get_stock_data` 函数获取数据,存储到 `data` 列表中。最后调用 `save_to_csv` 函数将数据存储到CSV文件中,并且调用 `show_data` 函数展示数据。
注意,由于CSV文件可能会包含中文字符,所以在打开文件时需要指定编码为 `utf-8-sig`,这样可以避免在Excel中打开文件时出现乱码问题。
阅读全文