使用python和tableau对数据进行抓取及可视化
2023-09-14 08:58:53 时间
本篇文章介绍使用python抓取贷款及理财平台的数据,并将数据拼接和汇总。最终通过tableau进行可视化。与之前的python爬虫文章 不同之处在于之前是一次性抓取生产数据表,本次的数据需要每天重复抓取及存储,并汇总在一起进行分析和可视化。
开始前的准备工作
开始之前先导入所需使用的库文件,各个库文件在整个抓取和拼表过程中负责不同的部分。Requests负责页面抓取,re负责从抓取下
来的页面中提取有用的信息,pandas负责拼接并生成数据表以及最终的数据表导出。
#导入requests库(请求和页面抓取)
import requests
#导入正则库(从页面代码中提取信息)
import re
#导入科学计算库(拼表及各种分析汇总)
import pandas as pd
设置一个头文件信息,方便后面的抓取。这个头文件有两个作用,第一防止抓取时被封,第二方便后面对页面源文件的转码。
#设置请求中头文件的信息
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64
Safari/537.11',
'Accept':'text/html;q=0.9,**;q=0.8',
'Accept-Charset':'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'Connection':'close',
'Referer':'https://www.bluewhale.cc/'
}
r=requests.get('http://www.p2peye.com/shuju/ptsj/',headers=headers)
status=r.status_code
if status == 200:
print('页面抓取状态正常。')
else:
os._exit(0)
html=r.content
html=str(html, encoding = "GBK")
print('编码转换完成!')
title=re.findall(r'"return false".*?title="(.*?)"',html)
total=re.findall(r'"total">(.*?)万<',html)
rate=re.findall(r'"rate">(.*?)<',html)
pnum=re.findall(r'"pnum">(.*?)人<',html)
cycle=re.findall(r'"cycle">(.*?)月<',html)
p1num=re.findall(r'"p1num">(.*?)人<',html)
fuload=re.findall(r'"fuload">(.*?)分钟<',html)
alltotal=re.findall(r'"alltotal">(.*?)万<',html)
capital=re.findall(r'"capital">(.*?)万<',html)
date=time.strftime('%Y-%m-%d',time.localtime(time.time()))
print('数据提取完成!')
columns = ['采集日期','平台名称','成交额(万)','综合利率','投资人(人)','借款周期(月)','借款人(人)','满标速度(分
钟)','累计贷款余额(万)','净资金流入(万)']
table=pd.DataFrame({'采集日期':date,
'平台名称':title,
'成交额(万)':total,
'综合利率':rate,
'投资人(人)':pnum,
'借款周期(月)':cycle,
'借款人(人)':p1num,
'满标速度(分钟)':fuload,
'累计贷款余额(万)':alltotal,
'净资金流入(万)':capital},
columns=columns)
print('数据表创建完成!')
table.to_csv('C:\\Users\\cliffwang\\Desktop\\wdty' date '.csv',index=False)
print(date '日数据导出完毕!')
table.to_csv('wdty.csv',index=False,mode='a')
print('累计数据追加导出完毕!')
end = time.clock()
print ("执行时间: %f s" % (end-start))
自定义函数写好后,每次只需要执行loan_data()就可以完成之前的30 步骤的工作了。下面是代码和输出的状态信息以及代码执行时
间信息。
loan_data()
页面抓取状态正常。
编码转换完成!
数据提取完成!
数据表创建完成!
2017-04-19日数据导出完毕!
累计数据追加导出完毕!
执行时间: 0.933262 s
使用tableau进行可视化
导出的数据虽然为csv格式,但使用excel进行可视化并不理想,主要问题在于excel对图表行列数的限制(每张图最多只能容纳255个数
量列)。因此,我们将数据表导入到tableau中进行可视化。下面是对600 家网贷平台数据的可视化截图。尺寸为各平台总成交额,颜色为综合利率。
相关文章
- Python如何爬取实时变化的WebSocket数据
- 用python实现简单EXCEL数据统计的实例
- python使用requests发送multipart/form-data请求数据
- 【Python五篇慢慢弹】数据结构看python
- 【Python数据挖掘课程】三.Kmeans聚类代码实现、作业及优化
- Python编程:利用python编程实现对基于时间序列的数据(dataframe格式)按照指定时间范围进行单方向关联,不存在的日期补充为默认的NaN
- Python语言学习:创建/删除文件/文件夹、获取当前文件/文件夹路径(系统环境路径/目录)、获取当前文件夹下的所有子文件路径等代码(os系列用法)实现之详细攻略
- IPython:利用python语言将后缀为ipynb文件中的输出的图片在py文件中编程进行可视化—即如何将IPython.core.display.HTML类型的数据进行图表可视化
- Python:利用pandas对两个dataframe数据进行左联接/左关联(以左边为主体)、右联接/右关联(以右边为主体)、内联接(取交集)、外联接(取并集)操作案例实现代码
- BigData:基于python编程—根据中国各个城市地理坐标+人口、GDP大数据进行标记中国地图、热点图、动态图
- Python之pandas:对dataframe数据的时间日期格式类型字段进行标准化变换(比如将日期类型字段格式2014/1/1转换为2014-1-1)之详细攻略
- Python编程语言学习:python的列表的特殊应用之一行命令实现if判断中的两类判断
- Python采集某平台书籍和评论数据~
- python采集往期股票数据进行分析预测
- 机器学习案例(六):Python 大数据进行信用卡欺诈检测(完整源码和分析)
- Python 可轻松获取天气数据、可视化分析
- 如此美妙,Python 处理CSV、JSON和XML数据的方法真简便
- 【阶段二】Python数据分析Pandas工具使用09篇:探索性数据分析:数据的描述:数据的相关关系与数据的波动趋势
- python爬虫:scrapy可视化管理工具spiderkeeper部署
- Python:mysql-connector-python模块对MySQL数据库进行增删改查
- Python: 反方向迭代一个序列
- Python用拉格朗日法进行数据横向插值
- 通过Python爬虫获取【小说网站GUI】数据,保姆级教学
- 【数据分析】python带你分析122万人的生活工作和死亡数据
- 最常用的Python库--机器学习和数据科学必备神器
- python工具方法 18 labelme语义分割标注数据批量转换为png
- python工具方法 17 labelme标注的json文件转voc数据再转训练列表
- Python基于YOLOv7粉丝团标识出现时间记录系统(源码&部署教程&数据集)
- Python爬虫进行BeautifulSoup数据解析实战