基于Python的哔哩哔哩国产动画排行数据分析系统
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 获取页面内容
def get_html(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
r = requests.get(url, headers=headers)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
# 解析页面数据
def parse_data(html):
soup = BeautifulSoup(html, 'html.parser')
ranks = soup.find_all('td', {'class': 'rank'})
titles = soup.find_all('td', {'class': 'title'})
score_cons = soup.find_all('td', {'class': 'score'})
scores = [score_con.find('em').text for score_con in score_cons]
rank_dicts = list(zip(ranks, titles, scores))
df = pd.DataFrame(rank_dicts, columns=['排名', '动画名称', '评分'])
return df
# 主函数
def main():
url = 'https://www.bilibili.com/ranking?spm_id_from=333.851.b_7072696d61727950616765545f6e616d6533336337626439.1'
html = get_html(url)
df = parse_data(html)
print(df)
if __name__ == '__main__':
main()
这段代码首先定义了获取页面内容和解析页面数据的函数。主函数中调用这些函数,实现了简单的数据抓取和解析,并打印了一个包含动画排行信息的DataFrame。这个例子展示了如何使用Python进行网络爬虫,并使用pandas处理数据。
评论已关闭