修正以下代码的错误:# -- coding utf-8 --import pandas as pdimport requestsfrom bs4 import BeautifulSoupimport csv refrom requests_html import HTMLSession# # 爬取东方财富网个股资金流历史数据rawcode = 600651def gen_eastmoney_cod
-- coding: utf-8 --
import pandas as pd import requests import csv import re from requests_html import HTMLSession from bs4 import BeautifulSoup
'''
# 爬取东方财富网个股资金流历史数据
'''
rawcode = '600651'
def gen_eastmoney_code(rawcode: str) -> str: if rawcode[0] != '6': return f'0.{rawcode}' return f'1.{rawcode}'
def save_to_csv(df, filename): ''' 将数据保存为csv文件 Parameters ---------- df : DataFrame,待保存的数据 filename : str,保存文件名 ''' try: df.to_csv(filename, index=False, encoding='utf-8-sig') # 解决中文乱码问题 print(f'数据已保存至{filename}文件!') except Exception as e: print(e) print('数据保存失败!')
def main(): headers = { 'User-Agent': 'Mozilla / 5.0(WindowsNT10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 94.0.4606.81Safari / 537.36Edg / 94.0.992.50'} params = { 'cb': 'jQuery11230696442006331776_1634611526503', 'lmt': '0', 'klt': '101', 'fields1': 'f1,f2,f3,f7', 'fields2': 'f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61,f62,f63,f64,f65', 'ut': 'b2884a393a59ad64002292a3e90d46a5', 'secid': gen_eastmoney_code(rawcode), '_': '1634611526504' } response = requests.get('http://push2his.eastmoney.com/api/qt/stock/fflow/daykline/get', headers=headers, params=params) # print(response.text)
kliness = re.findall('"klines":(.*),', response.text)
# kliness1=kliness[0].split('"')
kliness1 = ','.join(kliness)
kliness2 = kliness1.strip('[')
kliness3 = kliness2.split('"')
# print(kliness3)
# 数据插入
all_df = pd.DataFrame()
for i in range(-len(kliness3), -1):
if len(kliness3[i]) >= 2:
data = kliness3[-i].split(',')
print(data)
'''
把data转换为dataframe以便存档
'''
df = pd.DataFrame(data).T
# df = df.T
print(df)
df.columns = ['日期', '主力净流入净额', '小单净流入净额', '中单净流入净额', '大单净流入净额', '超大单净流入净额', '主力净流入净占比',
'小单净流入净占比', '中单净流入净占比', '大单净流入净占比', '超大单净流入净占比', '收盘价', '涨跌幅', '未知']
all_df = pd.concat([all_df, df], axis=0)
save_to_csv(df, 'F:/stocks_test/资金流/' + str(rawcode) + '.csv')
save_to_csv(all_df, 'F:/stocks_test/资金流/' + str(rawcode) + '_all.csv')
print("爬取成功!")
if name == 'main': main(
原文地址: https://www.cveoy.top/t/topic/eXQV 著作权归作者所有。请勿转载和采集!