栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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

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、最终数据表

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/342783.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号