东方财富网爬虫及可视化
本次主要爬取东方财富网关于“大盘资金流向历史数据”的数据
根据日期及流入资金数据绘制折线图,尝试使用XHR或者bs抓取数据,无奈失败且比较麻烦,采用了selenium抓取的方法。
并使用xpath获取网页中的表格数据,需要提前安装谷歌浏览器及相关程序
from selenium import webdriver #导入模块
import time
import csv #存储数据
from lxml import etreeoption = webdriver.ChromeOptions() #网址获取
option.add_argument('headless') #设置浏览器静默
driver = webdriver.Chrome(options=option)
driver.get('http://data.eastmoney.com/zjlx/zs399006.html')
time.sleep(2)source = driver.page_source
mytree = etree.HTML(source)
tables = mytree.xpath("//table[@class='tab1']")#定位表格,返回列表
for i in range(len(tables)):#循环表格onetable = []trs = tables[i].xpath('.//tr')#取出所有tr标签for tr in trs:ui = []for td in tr:texts = td.xpath(".//text()")#取出所有td标签下的文本mm = []for text in texts:mm.append(text.strip(""))ui.append(','.join(mm))onetable.append(ui)#整张表格with open('stock.csv', 'a', newline='') as file:csv_file = csv.writer(file)for i in onetable:csv_file.writerow(i)time.sleep(2)
driver.close()
刚开始不太会爬取表格,bs获取的数据不全,看了某位大神参考代码才写出来,原文链接忘了,勿怪勿怪
这样的爬取的数据是比较乱的,如图所示
前两行数据存在问题,且数据中存在万 亿等数字,无法作图使用,可以使用pandas去除转换,但技术较浅且数据量不多,直接使用excel进行处理了,处理结果如图所示
接下来就是使用matplotlib进行绘图了。
matplotlib绘图自由度很高,意味着只要你会几乎可以做出任何想要的形状,同时也意味着你需要知道许多使用方法。
from matplotlib import pyplot as plt #引入模块
import numpy as np
import pandas as pddata = pd.read_csv('shanghai_stock_market.csv', encoding='gb2312') #读取文件font1 = {'family': 'FangSong', #字体设置'weight': 'normal','size': 30,}
font2 = {'family': 'Times New Roman','weight': 'normal','size': 30,}x = data['日期'].iloc[::-1] #日期反转及坐标轴数据获取
y1 = data['主力净流入']
y2 = data['超大单净流入']
y3 = data['大单净流入']
y4 = data['中单净流入']
y5 = data['小单净流入']plt.figure(figsize=(40, 10), dpi=100) #设置图大小并绘图
plt.plot(x, y1, label='主力净流入', linewidth=5)
plt.plot(x, y2, label='超大单净流入', linewidth=5)
plt.plot(x, y3, label='大单净流入', linewidth=5)
plt.plot(x, y4, label='中单净流入', linewidth=5)
plt.plot(x, y5, label='小单净流入', linewidth=5)y_yticks = np.arange(-500, 400, 100) #坐标轴标签
plt.xticks(x[::6])
plt.yticks(y_yticks, [i for i in range(-500, 400, 100)])
plt.tick_params(labelsize=16) #坐标轴标签大小设置plt.xlabel('日期', font1) #坐标轴说明及标题设置
plt.ylabel('净流入数据', font1)
plt.title('大盘资金流向历史数据(沪市)', font1) #标题plt.axhline(data['主力净流入'].min(), linewidth=5) #参考线绘制
plt.axhline(data['超大单净流入'].min(), linewidth=5)
plt.axhline(data['大单净流入'].min(), linewidth=5)
plt.axhline(data['小单净流入'].min(), linewidth=5)plt.legend(prop=font1) #图例设置
plt.savefig('沪市.jpg')#保存图片
plt.show() #展示
需要注意很多的小细节问题,找了好多零碎资料才有的下图
成功了,不太懂股市数据,不会解读,不过看着除了小单流入基本都是呈现负值,意味着大客户抽资金?
东方财富网爬虫及可视化相关推荐
- 中国天气网爬虫数据可视化
目录 中国天气网爬虫数据可视化 爬虫功能 网页分析 以华北地区为例分析网页源代码 1.以谷歌浏览器为例分析 2. 提取特征标签 3.分析源代码 利用requests库获取目标网页源代码 利用Beaut ...
- [网络爬虫|smtp协议|python]东方财富网爬虫,python smtp协议发送爬取数据至QQ邮箱
本文改自 [网络爬虫|smtp协议|python]东方财富网爬虫,python smtp协议发送爬取数据至QQ邮箱 之前写的爬虫单子,代码已经跑了快3个月了,后续又增加了一些需求,修改了一些小bug ...
- 基础爬虫记~豆瓣+东方财富网爬虫
基础小白,大佬轻点喷~ 一.基础豆瓣爬虫 1.首先在某站上听讲解,简单建立起了对爬虫的基础框架,具体包括五个板块(当然 有些东西看个人 可写成函数 也可以直接写 但重复用到的东西建议写函数) 用到了下 ...
- 东方财富网爬虫及MySQL数据存储
爬取东方财富网关于"国华网安资金流向"数据 采用了动态获取的方法,使用xpath获取网页中的表格数据(需安装谷歌浏览器及相关程序) ChromeDriver Mirror(下载谷歌 ...
- 爬虫学习笔记(用python爬取东方财富网实验)
参考文章以及视频:(11条消息) 爬虫实战 | 爬取东方财富网股票数据_简说Python的博客-CSDN博客.手把手教你从东方财富网上获取股票数据_哔哩哔哩_bilibili.[Python爬虫案例] ...
- 爬虫实战 | 爬取东方财富网股票数据
本文转载来自:公众号 志斌的python笔记 今天有个朋友说,他想做个关于股票的可视化网页,但是缺乏股票的数据,想让志斌帮他做个爬虫来每天获取数据.所以我将它写成一个实战案例,供大家一起参考学习! 1 ...
- Python爬虫爬取东方财富网的股票信息
简单的Python爬虫应用 目标:爬取东方财富网的股票信息 1.先找到要爬取的网页 2.第二步开始爬取信息 2.1 通过requests获取网页信息 2.2再通过BeautifulSoup解析: 2. ...
- 爬虫-豆瓣top250,东方财富网动态数据
~满满干货分享 一.豆瓣top250爬取过程 (学习视频:Python爬虫编程基础5天速成(2021全新合集)Python入门+数据分析_哔哩哔哩_bilibili) 1.爬取网页 def askUR ...
- Python爬虫尝试-爬取指定股票的财务报表(东方财富网)
Python爬虫 爬取财务报表(东方财富网) 爬取指定股票的财务报表 需求确认 思考实现 获取所有报告的url地址 根据获取的url地址下载文件或者输出正文内容 爬取指定股票的财务报表 需求确认 最经 ...
最新文章
- gitlab 目录tag_【环境搭建】gitlab-ci(持续集成)
- oracle 表空间扩容方法
- 微信开发七(配置js-SDK,步骤2)
- 教你玩转vue-router命令视图
- Mysql 时间类型整理
- Bailian4141 砝码称重【DP】
- SqlServerExpress2005 自动备份
- 查看表的记录最多的sqll
- 电脑ATX电源接口定义详解
- 996,活着抑或死亡
- java duration 时间差_Java Duration toDays()用法及代码示例
- HTML和CSS实现京东首页(html和css详解)
- 为何丧尸只会攻击人类,而不“咬”动物?
- 前端实现excel导出功能(vue)
- MySQL--SQL执行顺序详解
- 05.位图和比较器的简单应用
- 大学物理第七章“机械波”复习笔记
- uniapp海康云台插件可实时操控摄像头
- 如何下载eclipse
- 那些不蹭热点的硬核科技公司,却是元宇宙最好的投资对象?