Python抓取数据到可视化全流程的实现过程
作者:你隔壁的小王 发布时间:2021-06-14 02:03:28
标签:Python数据,可视化
1、爬取目标网站:业绩预告_数据中心_同花顺财经
(ps:headers不会设置的可以看这篇:Python 用requests.get获取网页内容为空 ’ ’)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import re
import requests##把各种可能用到的包提前导好
headers={
'Accept': 'text/html,*/*; q=0.01',
'hexin-v': 'A2C11EVPFXAhNKl0PUpM6xp8MWU2aUUO5k-YOdpwLngMrQpTgnkUwzZdaMMp',
'Referer': 'http://data.10jqka.com.cn/financial/yjyg/',
'Cookie':'对应填写',
'User-Agent':'对应填写'
}
url="http://data.10jqka.com.cn/ajax/yjyg/date/2021-12-31/board/ALL/field/enddate/order/desc/page/{}/ajax/1/free/1/"
result = ''
for i in range(1,5):
result += requests.get(url.format(i), headers=headers).text
result
爬取成功,检查数据:
2、获取序号、股票代码、等你所需要的信息
index = re.findall('<td>(.*)</td>',result)
index
148条数据符合预期,继续查看股票代码(这里使用正则表达式查询,可以看这篇里边对正则表达式进行了讲解:正则表达式+常用示例)
stock_code = re.findall('class="stockCode">(.*)</a>',result)
print(stock_code)
3、组成DataFrame
data = pd.DataFrame({
"stock_code":stock_code,
"stock_name":stock_name,
"performance":performance,
"summary":summary
}, index=index)
data
组合成功
4、处理数据
使用正则筛选出净利润和增长幅度
data['start_profit'] = data['summary'].str.extract('(-{0,1}\d{0,10}\.{0,1}\d{0,10})万元')
data['end_profit'] = data['summary'].str.extract('至(-{0,1}\d{0,10}\.{0,1}\d{0,10})万元')
data["start_range"] = data['summary'].str.extract('(\d{0,5}\.{0,1}\d{0,5})%') + "%"
data["end_range"] = data['summary'].str.extract('至(\d{0,5}\.{0,1}\d{0,5})%') + "%"
data.head()
判断盈利情况:
def if_profit(x):
if x in ['业绩预降', '业绩大幅上升', '业绩大幅下降', '业绩预盈', '业绩预增', '预计扭亏']:
return 1
if x in ['预计减亏', '不确定','业绩预亏', '预计增亏', '预计续亏']:
return -1
return 0
data['is_profit'] = data.apply(lambda x : if_profit(x["performance"]),axis=1)
data.head()
##计算盈利多少
yingli = (data['is_profit'] == 1).sum()
yingli
##亏损多少
kuisun = (data['is_profit'] == -1).sum()
kuisun
通过绘制饼图实现可视化:
plt.pie([yingli,kuisun], labels=['盈利','亏损'], autopct='%.2f%%')
font={
"family":"kaiti",
"size":"15"
}
plt.rc("font",**font)
plt.title('148家公司盈利和亏损情况占比')
plt.show()
来源:https://blog.csdn.net/weixin_43212535/article/details/122299121
0
投稿
猜你喜欢
- 感谢 Dawn CSS Reset 的尝试和建议。针对字体的写法,觉得需要说明一下:body,button, input, select,
- 一张损坏的表的症状通常是查询意外中断并且你能看到例如这些错误:◆ “tbl_name.frm”被锁定不能改变。◆ 不能找到文件“tbl_na
- 一、简介是一个 python 内置包,不需要额外安装即可使用urllib 是 Python 标准库中用于网络请求的库,内置四个模块,分别是u
- 本文实例讲述了Python实现求解一元二次方程的方法。分享给大家供大家参考,具体如下:1. 引入math包2. 定义返回的对象3. 判断b*
- 我的PJBlog在从2.7升级的3.0的时候,犹豫了很久。升级到PJBlog3.0就是看中了新增的静态页面功能,但是同时又担心造成博客出现大
- 本文用纯js代码手写一个瀑布流网页效果,初步实现一个基本的瀑布流布局,以及滚动到底部后模拟ajax数据加载新图片功能。缺点:1. 程序不是响
- 无论安装何版本的mysql,在管理工具的服务中启动mysql服务时都会在中途报错。内容为:在 本地计算机 无法启动mysql服务 错误106
- 微软在12月22日早上发布新的安全通告证实,一处远程执行代码漏洞影响到了整个SQL Server产品线。该漏洞的入侵代码在两周前已经被公布在
- 1.--区分大小写select * from a where a=’AbCdE’ collate C
- <form name="frm"><select name=school onchange="
- 如何在庞大的数据中高效的检索自己需要的东西?本篇内容介绍了Python做出一个大数据搜索引擎的原理和方法,以及中间进行数据分析的原理也给大家
- 记住:这时候08安装的时候要自定义一个实例 比如:mysql2008(不能在使用默认实例了) sql server 2008 express
- 现在大部分网站都使用asp+access构建,这样的话通过下载access数据库简单就可以对网站进行破坏! 而很多的网站都不太重
- 在进制学习时候,细心的小伙伴不免都发现unicher函数的存在,没错能够经常看到的,也就是关于进制的转化,那肯定有小伙伴要开心起来了,因为进
- 1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表
- 工具安装主要调用win32库实现分辨率获取和读写,需要安装pywin32示例中是从execl列表中读取需要设置的分辨率,需要安装xlrd用到
- 当你使用Lumigent log Explorer连接服务器后,选择具体的数据库实例时报错,提示 &nbs
- 锟拷码和口字码说到乱码问题就不得不提到锟斤拷,这算是非常常见的一种乱码形式,那么它到底是经过何种错误操作产生的呢?下面我们一步步探究。看一个
- python中return的用法1、return语句就是把执行结果返回到调用的地方,并把程序的控制权一起返回程序运行到所遇到的第一个retu
- PRD的作用之一在于,保留产品设计初衷,期望达到什么样的目的,起到事后验证的效果。产品初衷需要做到利益最大化,找最大的蛋糕,为最大目标人群服