python爬虫,东方财富股票历史资金流向表,并写入数据库

python爬虫,东方财富股票历史资金流向表,并写入数据库,第1张

python爬虫,东方财富股票历史资金流向表,并写入数据库

 所需要爬取的数据表

 检查代码,选择该数据表的网络链接,如图所示为该数据表的数据

开始写代码!!

1、导包

import requests #获取网页
from bs4 import BeautifulSoup
import pprint
import json
import pandas as pd
from lxml import etree #解析文档
import re
from selenium import webdriver

2、读取网页链接

url=f'http://push2his.eastmoney.com/api/qt/stock/fflow/daykline/get?cb=jQuery112309173939785847636_1634476786717&lmt=0&klt=101&fields1=f1%2Cf2%2Cf3%2Cf7&fields2=f51%2Cf52%2Cf53%2Cf54%2Cf55%2Cf56%2Cf57%2Cf58%2Cf59%2Cf60%2Cf61%2Cf62%2Cf63%2Cf64%2Cf65&ut=b2884a393a59ad64002292a3e90d46a5&secid=0.000001&_=1634476786718'
data=requests.get(url)#获取网页源代码
data.encoding='utf-8'
str1=str(data.text)
print(str1)

3、 数据提取

dict1=eval(str1[42:-2])#去掉“”,去掉首尾不用的字符串
dict2=dict1['data']['klines']
print(dict2[1])
split=re.split('[,]',dict2[1])#拆分
print(split)

 4、数据处理

i=0
list1=[]
for i in range(len(dict2)):
    i=1+i
    split=re.split('[,]',dict2[i])
    list1.append(split)
print(list1)

5、数据存储,生成数据框

df1=pd.Dataframe(list1)
df1.columns=['日期','主力净流入-净额','小单净流入-净额','中单净流入-净额','大单净流入-净额','超大单净流入-净额','主力净流入-净占比',
             '小单净流入-净占比','中单净流入-净占比','大单净流入-净占比','超大单净流入-净占比','收盘价','涨跌幅','0','0']
del df1['0']#删除数据为0的列
print(df1)

6、写入数据库

知识点:

create_engine参数说明:

(mysql+mysqldb://用户名:密码@localhost:端口/数据库名?编码)设置数据库的编码方式,可以防止latin字符不识别而报错

to_sql参数说明:

(数据, '表名', con=连接键, schema='数据库名', if_exists=' *** 作方式')

其中 *** 作方式有append、fail、replace

#写入数据库
import  pymysql
import pandas as pd
from sqlalchemy import create_engine

##将数据写入mysql的数据库,但需要先通过sqlalchemy.create_engine建立连接,且字符编码设置为utf8,否则有些latin字符不能处理
conn = create_engine('mysql+pymysql://root:123456@localhost:3306/stock?charset=utf8')
pd.io.sql.to_sql(df1,'000001_data',conn,schema='stock',if_exists='append')

7、最终数据表

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4686644.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-07
下一篇 2022-11-07

发表评论

登录后才能评论

评论列表(0条)

保存