python爬虫东方财富网的股票资金流(以平安银行为例)

网址:平安银行(000001)资金流向 _ 数据中心 _ 东方财富网

爬取内容:

工具:jupyter notebook

所需要的包:

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

首先在原网页上进入开发者模式,点击网络后ctrl+r重新载入,会发现,该网站的数据采用的jQuery编码,因此我们可以找到一个含有所有表格数据的url:

 

 

所以获取源代码:

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)

再将内容转化为字典,提取字典中的'klines',将数据转换为list

dict1=eval(str1[42:-2])#转化为字典
dict2=dict1['data']['klines']

list1=list(dict1['data']['klines'])#提取字典中的'klines',将数据转换为list
print(dict2[1])
split=re.split('[,]',dict2[1])
print(split)

将数据切片,将例如2021-05-19,-5004505.0,-37477279.0,42481776.0,67939072.0,-72943577.0,-0.49,-3.67,4.15,6.64,-7.13,23.60,-1.26的数据按逗号分开,从而直接转为列表

i=0
list1=[]
for i in range(len(dict2)):
    i=1+i
    split=re.split('[,]',dict2[i])
    list1.append(split)
    print(list1) #数据切片,将例如2021-05-19,-5004505.0,-37477279.0,42481776.0,67939072.0,-72943577.0,-0.49,-3.67,4.15,6.64,-7.13,23.60,-1.26的数据按逗号分开,从而直接转为列表

输出为excel:

df1=pd.DataFrame(list1)
df1.columns=['日期','主力净流入-净额','小单净流入-净额','中单净流入-净额','大单净流入-净额','超大单净流入-净额','主力净流入-净占比','小单净流入-净占比','中单净流入-净占比','大单净流入-净占比','超大单净流入-净占比','收盘价','涨跌幅','0','0']
print(df1)
df1.to_excel('C:\\Users\\hanyun\\Desktop\\d.xlsx')

若将数据导入到mysql中,则需要create_engine

import pymysql
from sqlalchemy import create_engine 
name='root'
password='root'
d = pymysql.connect(host='localhost',user='root',password='root',database='爬虫1',port=3306,charset='utf8')#建立本地数据库连接
yconnect = create_engine('mysql+pymysql://root:root@localhost:3306/爬虫1?charset=utf8')
pd.io.sql.to_sql(df1,'ecnomic', yconnect, schema='爬虫1', if_exists='append')

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值