基于Python的B站排行榜大数据分析与可视化系统通过网络爬虫技术,自动采集B站网址热门排行榜,提取大量相关文本信息并存储在系统中。通过对这些信息进行统计分析,系统实现了B站排行榜热度的整体分析,热门版块的词云分析以及不同版块热度的详细分析。通过可视化的方式,用户可以清晰直观地了解B站各个排行榜的动态和热度趋势。本系统不仅提供了对B站内容的全面分析,还为用户提供了一种方便、直观的方式来探索和了解B站平台上的热门内容和趋势。
本系统通过对动漫数据的清洗、分析等,实现动漫的可视化分析,主要功能包括以下方面:
- 从某动漫网站抓取所有动漫动画数据,并进行数据清洗,去除无效字符和错误字符,将清洗和结构化后的数据转成 json 格式数据;
- 实现从动漫的话数、放送时间、导演、脚本、评分、评分人数等维度进行进行多种形式的可视化分析,包括柱状图、折线图、散点图、扇形图等;
- 分析话数、放送时间、导演、脚本、评分人数等因素影响评分的情况。
核心算法代码分享如下:
total_page = 200
base_url = 'https://xxxxxxx.tv/anime/browser?sort=rank&page={}'
for page in range(1, total_page):
print('抓取第 {} 页的数据'.format(page))
url = base_url.format(page)
headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Content-Type': 'application/x-www-form-urlencoded',
'Accept-Encoding': 'gzip, deflate, compress',
'Accept-Language': 'en-us;q=0.5,en;q=0.3',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
'Referer': url
}
response = requests.get(url, headers=headers)
response.encoding = 'utf8'
soup = BeautifulSoup(response.text, 'lxml')
item_ul = soup.find(name='ul', attrs={'id': 'browserItemList'})
items = item_ul.find_all(name='li')
for item in items:
try:
......
# 话数,上映时间,导演等
info = item.find('p', attrs={'class': 'info tip'}).text
info = info.strip().replace(' ', '').split('/')
# 话数
hua_count = info[0][:-1]
date = info[1]
peoples = info[2:] if len(info) > 2 else []
......
anime_info = {
'封面': img,
'名称': name,
'类型': leixing,
'排名': int(rank),
'话数': int(hua_count),
'放送时间': date,
'导演': daoyan,
'声优': cv_shengyou,
'脚本': jiaoben,
'评分': float(score),
'评分人数': int(score_count)
}