分享好友 最新动态首页 最新动态分类 切换频道
2024年Python最全Python爬虫以及数据可视化分析!这才是零基础入门案例!(1)
2024-12-26 23:38

pl = ‘%.1f’ % (float(pl) / 10000)

2024年Python最全Python爬虫以及数据可视化分析!这才是零基础入门案例!(1)

else:

pl = re.search(r’d*(.)?d’, pl).group()

review.append(float(pl))

print(review)

for tag in soup.find_all(‘div’, class_=‘detail’):

sc = tag.find(‘span’, class_=‘data-box’).next_sibling.next_sibling.next_sibling.next_sibling.get_text()

sc = re.search(r’d*(.)?d’, sc).group()

favorite.append(float(sc))

print(favorite)

for tag in soup.find_all(‘div’, class_=‘pts’):

zh = tag.find(‘div’).get_text()

TScore.append(int(zh))

print(‘综合评分’, TScore)

其中有个.next_sibling是用于提取同级别的相同标签信息,如若没有这个方法,当它找到第一个’span’标签之后,就不会继续找下去了(根据具体情况来叠加使用此方法);

还用到了正则表达式来提取信息(需要导入库‘re’

最后我们将提取的信息,存进excel表格之中,并返回结果集

# 存储至excel表格中

info = {‘动漫名’: name, ‘播放量(万)’: play, ‘评论数(万)’: review,‘收藏数(万)’: favorite, ‘综合评分’: TScore}

dm_file = pandas.DataFrame(info)

dm_file.to_excel(‘Dongman.xlsx’, sheet_name=“动漫数据分析”)

return name, play, review, favorite, TScore

我们可以打开文件看一看存储的信息格式(双击打开

成功

三、数据可视化分析


我们先做一些基础设置

要先准备一个文件: STHeiti Medium.ttc [注意存放在项目中的位置]

my_font = font_manager.FontProperties(fname=‘https://blog.csdn.net/2401_84585316/article/details/data/STHeiti Medium.ttc’) # 设置中文字体(图表中能显示中文

plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

plt.rcParams[‘axes.unicode_minus’] = False

dm_name = info[0] # 番剧名

dm_play = info[1] # 番剧播放量

dm_review = info[2] # 番剧评论数

dm_favorite = info[3] # 番剧收藏数

dm_com_score = info[4] # 番剧综合评分

然后,开始使用matplot来绘制图形,实现数据可视化分析

文中有详细注释,这里就不再赘述了,聪明的你一定一看就懂了

# **********************************************************************综合评分和播放量对比

fig, ax1 = plt.subplots()

plt.bar(dm_name, dm_com_score, color=‘red’) #设置柱状图

plt.title(‘综合评分和播放量数据分析’, fontproperties=my_font) # 表标题

ax1.tick_params(labelsize=6)

plt.xlabel(‘番剧名’) # 横轴名

plt.ylabel(‘综合评分’) # 纵轴名

plt.xticks(rotation=90, color=‘green’) # 设置横坐标变量名旋转度数和颜色

ax2 = ax1.twinx() # 组合图必须加这个

ax2.plot(dm_play, color=‘cyan’) # 设置线粗细,节点样式

plt.ylabel(‘播放量’) # y轴

plt.plot(1, label=‘综合评分’, color=“red”, linewidth=5.0) # 图例

plt.plot(1, label=‘播放量’, color=“cyan”, linewidth=1.0, linestyle=“-”) # 图例

plt.legend()

plt.savefig(r’E:1.png’, dpi=1000, bbox_inches=‘tight’) #保存至本地

plt.show()

来看看效果

有没有瞬间就感觉高上~~了(嘿嘿~

然后我们用相同的方法来多绘制几个对比图

# **********************************************************************评论数和收藏数对比

fig, ax3 = plt.subplots()

plt.bar(dm_name, dm_review, color=‘green’)

plt.title(‘番剧评论数和收藏数分析’)

plt.ylabel(‘评论数(万)’)

ax3.tick_params(labelsize=6)

plt.xticks(rotation=90, color=‘green’)

ax4 = ax3.twinx() # 组合图必须加这个

ax4.plot(dm_favorite, color=‘yellow’) # 设置线粗细,节点样式

plt.ylabel(‘收藏数(万)’)

plt.plot(1, label=‘评论数’, color=“green”, linewidth=5.0)

plt.plot(1, label=‘收藏数’, color=“yellow”, linewidth=1.0, linestyle=“-”)

plt.legend()

plt.savefig(r’E:2.png’, dpi=1000, bbox_inches=‘tight’)

fig, ax5 = plt.subplots()

plt.bar(dm_name, dm_com_score, color=‘red’)

plt.title(‘综合评分和收藏数量数据分析’)

plt.ylabel(‘综合评分’)

ax5.tick_params(labelsize=6)

plt.xticks(rotation=90, color=‘green’)

ax6 = ax5.twinx() # 组合图必须加这个

ax6.plot(dm_favorite, color=‘yellow’) # 设置线粗细,节点样式

plt.ylabel(‘收藏数(万)’)

plt.plot(1, label=‘综合评分’, color=“red”, linewidth=5.0)

plt.plot(1, label=‘收藏数’, color=“yellow”, linewidth=1.0, linestyle=“-”)

plt.legend()

plt.savefig(r’E:3.png’, dpi=1000, bbox_inches=‘tight’)

fig, ax7 = plt.subplots()

plt.bar(dm_name, dm_play, color=‘cyan’)

plt.title(‘播放量和评论数 数据分析’)

plt.ylabel(‘播放量(万)’)

ax7.tick_params(labelsize=6)

plt.xticks(rotation=90, color=‘green’)

ax8 = ax7.twinx() # 组合图必须加这个

ax8.plot(dm_review, color=‘green’) # 设置线粗细,节点样式

plt.ylabel(‘评论数(万)’)

plt.plot(1, label=‘播放量’, color=“cyan”, linewidth=5.0)

plt.plot(1, label=‘评论数’, color=“green”, linewidth=1.0, linestyle=“-”)

plt.legend()

plt.savefig(r’E:4.png’, dpi=1000, bbox_inches=‘tight’)

plt.show()

我们来看看最终效果

Nice!很完美~ 大家可以根据自己的想法按照相同的方法进行数据组合分析。

最后,附上全部代码

import re

import pandas

import requests

from bs4 import BeautifulSoup

import matplotlib.pyplot as plt

from matplotlib import font_manager

def get_html(url):

try:

r = requests.get(url) # 使用get来获取网页数据

r.raise_for_status() # 如果返回参数不为200,抛出异常

r.encoding = r.apparent_encoding # 获取网页编码方式

return r.text # 返回获取的内容

except:

return ‘错误’

def save(html):

soup = BeautifulSoup(html, ‘html.parser’) # 指定Beautiful的解析器为“html.parser”

with open(‘https://blog.csdn.net/2401_84585316/article/details/data/B_data.txt’, ‘r+’, encoding=‘UTF-8’) as f:

f.write(soup.text)

TScore = [] # 综合评分

name = [] # 动漫名字

bfl = [] # 播放量

pls = [] # 评论数

scs = [] # 收藏数

for tag in soup.find_all(‘div’, class_=‘info’):

bf = tag.a.string

name.append(str(bf))

print(name)

for tag in soup.find_all(‘div’, class_=‘detail’):

bf = tag.find(‘span’, class_=‘data-box’).get_text()

if ‘亿’ in bf:

num = float(re.search(r’d(.d)?', bf).group()) * 10000

bf = num

else:

bf = re.search(r’d*(.)?d’, bf).group()

bfl.append(float(bf))

print(bfl)

for tag in soup.find_all(‘div’, class_=‘detail’):

pl = tag.find(‘span’, class_=‘data-box’).next_sibling.next_sibling.get_text()

if ‘万’ not in pl:

pl = ‘%.1f’ % (float(pl) / 10000)

else:

pl = re.search(r’d*(.)?d’, pl).group()

pls.append(float(pl))

print(pls)

for tag in soup.find_all(‘div’, class_=‘detail’):

sc = tag.find(‘span’, class_=‘data-box’).next_sibling.next_sibling.next_sibling.next_sibling.get_text()

sc = re.search(r’d*(.)?d’, sc).group()

scs.append(float(sc))

print(scs)

for tag in soup.find_all(‘div’, class_=‘pts’):

zh = tag.find(‘div’).get_text()

TScore.append(int(zh))

print(‘综合评分’, TScore)

info = {‘动漫名’: name, ‘播放量(万)’: bfl, ‘评论数(万)’: pls, ‘收藏数(万)’: scs, ‘综合评分’: TScore}

dm_file = pandas.DataFrame(info)

dm_file.to_excel(‘Dongman.xlsx’, sheet_name=“动漫数据分析”)

return name, bfl, pls, scs, TScore

def view(info):

my_font = font_manager.FontProperties(fname=‘https://blog.csdn.net/2401_84585316/article/details/data/STHeiti Medium.ttc’) # 设置中文字体(图标中能显示中文

dm_name = info[0] # 番剧名

dm_play = info[1] # 番剧播放量

dm_review = info[2] # 番剧评论数

dm_favorite = info[3] # 番剧收藏数

dm_com_score = info[4] # 番剧综合评分

plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

plt.rcParams[‘axes.unicode_minus’] = False

fig, ax1 = plt.subplots()

plt.bar(dm_name, dm_com_score, color=‘red’) #设置柱状图

plt.title(‘综合评分和播放量数据分析’, fontproperties=my_font) # 表标题

ax1.tick_params(labelsize=6)

plt.xlabel(‘番剧名’) # 横轴名

plt.ylabel(‘综合评分’) # 纵轴名

plt.xticks(rotation=90, color=‘green’) # 设置横坐标变量名旋转度数和颜色

ax2 = ax1.twinx() # 组合图必须加这个

ax2.plot(dm_play, color=‘cyan’) # 设置线粗细,节点样式

plt.ylabel(‘播放量’) # y轴

plt.plot(1, label=‘综合评分’, color=“red”, linewidth=5.0) # 图例

plt.plot(1, label=‘播放量’, color=“cyan”, linewidth=1.0, linestyle=“-”) # 图例

plt.legend()

plt.savefig(r’E:1.png’, dpi=1000, bbox_inches=‘tight’) #保存至本地

fig, ax3 = plt.subplots()

plt.bar(dm_name, dm_review, color=‘green’)

plt.title(‘番剧评论数和收藏数分析’)

plt.ylabel(‘评论数(万)’)

ax3.tick_params(labelsize=6)

plt.xticks(rotation=90, color=‘green’)

ax4 = ax3.twinx() # 组合图必须加这个

ax4.plot(dm_favorite, color=‘yellow’) # 设置线粗细,节点样式

plt.ylabel(‘收藏数(万)’)

plt.plot(1, label=‘评论数’, color=“green”, linewidth=5.0)

plt.plot(1, label=‘收藏数’, color=“yellow”, linewidth=1.0, linestyle=“-”)

plt.legend()

plt.savefig(r’E:2.png’, dpi=1000, bbox_inches=‘tight’)

现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。

分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

最新文章
笔记本电脑功率详解:影响因素、计算方式与应用场景
一、笔记本电脑功率概述笔记本电脑功率是指笔记本在运行过程中所需的能量,通常以瓦(W)为单位表示。功率是影响笔记本电脑性能的重要因素之一,了解笔记本功率可以帮助我们更好地选择适合自己需求的电脑。二、影响笔记本电脑功率的因素1.
运营干货|| 亚马逊广告关键词匹配方式及使用场景,让你的流量更精准 Keyboards 2
一谈到广告,关键词就是一个绕不开的话题,也是我们在广告运营中的重中之重。所以,我打算将亚马逊上关键词的内容,分成8篇的更新,从0-1带你全方位的了解亚马逊关键词的基础概念到高阶运营中的用法。在之前的文章中已经更新了亚马逊关键词
郑州企业专属网络名片定制专家,助力品牌飞跃
郑州专业网站搭建团队,专注于为企业量身定制专属网络名片,助力品牌形象提升与市场拓展,推动企业腾飞。郑州专业网站搭建团队的核心优势挑选郑州专业网站搭建团队的策略塑造企业独特的网络形象在互联网迅猛发展的今天,网络营销日益成为企
教你如何获取root权限认识ROOT怎么使用教程(图)
手机越用越智能,而系统定制又包含较多无用的应用,对于玩机爱好者来说,这是多么多么郁闷的一件事;更为重要的是,高玩们更喜欢DIY,喜欢那种控制的快感!所以今天就给大家说说Android手机ROOT权限的获取(iOS的越狱、塞班的xx、Meego的RO
郑州电子中专学校专业介绍 学费多少 2024招生简章
在当今信息技术日新月异的时代,职业教育成为连接梦想与现实的桥梁。郑州电子中专学校,作为一所集专业技能培训与理论知识传授于一体的优秀中等专业学校,致力于培养适应市场需求的高素质技能型人才。本文将详细介绍郑州电子中专学校的专业
股票行情快报:华测导航(300627)12月12日主力资金净卖出2432.67万元
证券之星消息,截至2024年12月12日收盘,华测导航(300627)报收于42.01元,下跌0.4%,换手率2.29%,成交量10.38万手,成交额4.35亿元。12月12日的资金流向数据方面,主力资金净流出2432.67万元,占总成交额5.59%,游资资金净流入2430.27万元
白小姐三肖三期必出一期开奖虎年,深度策略应用数据_4K版15.974
白小姐三肖三期必出一期开奖虎年,这一深度策略应用数据_4K版15.974的预测模型,近年来在彩票界引起了广泛关注。该模型以其独特的算法和数据分析能力,为彩民提供了一种全新的彩票预测方式。本文将深入探讨这一模型的工作原理、优势以及其
江苏企业互联网营销新起点,百度优化推广实战教程
江苏百度优化推广教程,专为助力企业互联网营销新起点设计。本教程深入解析百度推广策略,涵盖关键词优化、广告创意、数据分析等关键环节,助您快速提升企业网络曝光度,精准触达潜在客户,实现营销目标。随着互联网的快速发展,越来越多的
如何在微信中高效转发聊天记录及注意事项总结
微信怎么转发聊天记录How to Forward Chat History on WeChat  在当今数字化时代,社交软件已经成为我们日常生活中不可或缺的一部分。微信作为中国最流行的通讯工具之一,不仅可以进行文字聊天、语音通话,还支持图片、视频、文件等多种
海外短视频软件,分享生活瞬间的热门应用
在这个数字化的时代,短视频已经成为了人们分享生活瞬间的热门方式。海外短视频软件更是让用户可以与全球的人分享自己的生活点滴,让生活变得更加有趣和有意义。如果你还没有尝试过使用海外短视频软件,那么介绍一些值得一试的应用,以及如
相关文章
推荐文章
发表评论
0评