import re
import pandas
import requests
from bs4 import BeautifulSoup
import matplotlib.pyplot as plt
from matplotlib import font_managerdef 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('./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'):# print(tag)bf = tag.a.stringname.append(str(bf))print(name)# ********************************************  播放量存储for tag in soup.find_all('div', class_='detail'):# print(tag)bf = tag.find('span', class_='data-box').get_text()# 统一单位为‘万’if '亿' in bf:num = float(re.search(r'\d(.\d)?', bf).group()) * 10000# print(num)bf = numelse: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.span.next_sibling.next_siblingpl = tag.find('span', class_='data-box').next_sibling.next_sibling.get_text()# *********统一单位if '万' not in pl:pl = '%.1f' % (float(pl) / 10000)# print(123, pl)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)# 存储至excel表格中info = {'动漫名': name, '播放量(万)': bfl, '评论数(万)': pls, '收藏数(万)': scs, '综合评分': TScore}dm_file = pandas.DataFrame(info)dm_file.to_excel('Dongman.xlsx', sheet_name="动漫数据分析")# 将所有列表返回return name, bfl, pls, scs, TScoredef view(info):dm_name = info[0]  # 番剧名dm_play = info[1]  # 番剧播放量dm_review = info[2]  # 番剧评论数dm_favorite = info[3]  # 番剧收藏数dm_com_score = info[4]  # 番剧综合评分# print(dm_com_score)# 为了坐标轴上能显示中文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('综合评分和播放量数据分析')  # 表标题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()def main():url = 'https://www.bilibili.com/v/popular/rank/bangumi'  # 网址html = get_html(url)  # 获取返回值# print(html)info = save(html)view(info)if __name__ == '__main__':main()

爬取文件

画出图形



可以直接将数据写进Mysql数据库

import pymysql
import pandas as pddef add(one):con=pymysql.Connect("localhost",'root','123456','bilibili',)cur=con.cursor()  #获取游标cur.execute("Insert into bibo(name,bofan,pinlun,shoucang,pinfen) VALUES(%s,%s,%s,%s,%s)",one)con.commit();  #提交#读进mysql
df=pd.read_excel("./Dongman.xlsx",engine='openpyxl')
v=df.values
print(len(v))
for one in range(0,len(v)):# print([v[one][0],v[one][1],v[one][2],v[one][3],v[one][4]])add([v[one][1],v[one][2],v[one][3],v[one][4],v[one][5]])

python 爬取bilibili番剧排行榜相关推荐

  1. Python爬取bilibili番剧排行

    爬取bilibili番剧排行 import requests from bs4 import BeautifulSoup import bs4 import re def get_url(url):t ...

  2. Python3 Request+Redis 爬取BILIBILI番剧列表

    该项目是结合Redis与Python爬虫爬取哔哩哔哩番剧索引中的所有番剧,目标网站链接如下: 番剧索引 - 哔哩哔哩 (゜-゜)つロ 干杯~-bilibili 前情提要 该项目需要提前下载并配置好Wi ...

  3. 大数据Python爬取B站电影排行榜——爬取信息

    大数据Python爬取B站电影排行榜-信息爬取 前言 一.配置环境 二.爬取B站电影排行榜top100 1.找到B站电影排行榜top100网页 2.用URL进行爬取信息 三.建立Excel表并导出 总 ...

  4. python爬取网易云音乐排行榜数据

    python爬取网易云音乐排行榜歌曲及评论 网易云音乐排行榜歌曲及评论爬取 主要注意问题:selenium 模拟登录.iframe标签定位.页面元素提取. 在利用selenium定位元素并取值的过程中 ...

  5. python爬取bilibili数据_如何使用Python爬取bilibili视频(详细教程)

    Python爬取bilibili视频 摘要 为了解决PC端的bilibili无法下载视频的问题,使用python语言可以实现一个能够爬取bilibili某个视频资源(不包括会员视频)的程序.采用整个视 ...

  6. python爬取酷狗音乐排行榜

    本文为大家分享了python爬取酷狗音乐排行榜的具体代码,供大家参考,具体内容如下 转载于:https://www.cnblogs.com/Pythonmiss/p/10799941.html

  7. python爬取bilibili弹幕_Python抓取BiliBili拦河坝并生成单词云,爬取,bilibili,弹幕

    木秀于林,风亦惧之:虽为萤火,亦绽光芒. Python爬取bilibili弹幕并生成词云 目标网站: 哔哩哔哩: https://www.bilibili.com/ 我这里以 TES vs SN 第四 ...

  8. python爬取bilibili数据_BiliBili爬取数据简单分析

    爬虫介绍:从1号直播间爬取发弹幕人账号,当时在线人数有五万左右,但到8000多时每3s发弹幕的新用户已经很少了,所以我就以这8000多人为起始点,将其放入队列中,取出一个,获得其关注人数,粉丝数,并将 ...

  9. python爬取b站用户_用Python爬取bilibili全站用户信息

    教你用Python爬取哔哩哔哩全站用户信息 运行 下载 git clone https://github.com/cexll/bili_user_Spider.git 复制代码 运行环境 Window ...

最新文章

  1. 【深度学习】移动翻转瓶颈卷积的实现(mobile inverted bottleneck convolution)
  2. DFT,DTFT,DFS,FFT区别
  3. java伪协议_JavaScript中伪协议 javascript:使用探讨
  4. SQL数据分析实战:好用的窗口函数
  5. oracle 命令分析
  6. 基于JAVA+SpringBoot+Mybatis+MYSQL的企业员工考勤管理系统
  7. 【运动学】基于matlab斜抛物体斜坡射程【含Matlab源码 980期】
  8. 视频教程-2020软考--网络规划设计师【综合知识】视频精讲-软考
  9. Python的伪造数据生成器:Faker
  10. 百度贴吧恶意代码分析
  11. 郎咸平:用友和金蝶的长板在哪儿
  12. 学网络必备50个知识点
  13. 在win10 系统输入法 输入几下老是自动被禁用解决办法
  14. 论如何科学的看小本子
  15. 华为数通HCIA学习笔记之OSI参考模型TCP/IP模型
  16. 给不会打字的朋友推荐一种鼠标写字的输入法
  17. Webpack学习笔记(官网教程)
  18. dig命令后+trace的含义
  19. Zabbix监控系统开发(2):JSON多维数组筛选字段是否包含字符串的解决方案
  20. 如果你是程序员,你是选择25k的996还是18k的八小时双休?

热门文章

  1. 【微软算法面试高频题】俄罗斯套娃信封
  2. 我就纳闷了。。。红黑联盟。。的水印真的好明显,欺负我大csdn
  3. 提问的智慧【原文翻译】
  4. 爬虫爬取相亲网站信息
  5. Chinanet骨干网结构概述
  6. android-App启动过程
  7. MySQL 字符集 注意事项
  8. Unity3d-制作粒子光环特效
  9. Golang计算坐标之间的距离
  10. 开源与安全的“冰与火之歌”