【Python数据分析案例】——中国高票房电影分析(爬虫获取数据及分析可视化全流程)
    		       		warning:
    		            这篇文章距离上次修改已过438天,其中的内容可能已经有所变动。
    		        
        		                
                由于原代码已经提供了一个很好的实例,这里我们只需要提取关键部分的代码来解决问题。
import requests
import pandas as pd
from bs4 import BeautifulSoup
import matplotlib.pyplot as plt
 
# 获取数据
def get_data(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)
    return r.text
 
# 解析数据
def parse_data(html):
    soup = BeautifulSoup(html, 'lxml')
    data = soup.find_all('table', class_='board-table')
    df = pd.read_html(str(data))[0]
    return df
 
# 清洗数据
def clean_data(df):
    df.columns = ['排名', '片名', '主演', '上映', '评分', '评分人数', '类型', '国家', '上映日期', '预告']
    df = df[df['上映'] != '预告']
    df['上映'] = df['上映'].str.replace('(中国大陆)', '').str.replace('(北美)', '')
    df['评分'] = df['评分'].astype(float)
    df['评分人数'] = df['评分人数'].str.replace(',', '').astype(int)
    return df
 
# 可视化数据
def visualize_data(df):
    plt.figure(figsize=(10, 6))
    plt.title('中国高票房电影')
    plt.xlabel('排名')
    plt.ylabel('票房(单位:亿元)')
    plt.bar(df['排名'], df['票房'])
    plt.show()
 
# 主函数
def main():
    url = 'https://maoyan.com/board/4'
    html = get_data(url)
    df = parse_data(html)
    df = clean_data(df)
    visualize_data(df)
 
if __name__ == '__main__':
    main()这段代码提供了一个简化的版本,主要包括获取网页数据、解析数据、清洗数据和可视化数据的过程。在这个过程中,我们使用了requests库来获取网页数据,使用BeautifulSoup进行网页解析,使用pandas处理数据框(DataFrame),并使用matplotlib进行数据可视化。这个流程是进行网络数据分析的标准流程,适用于多种类型的数据分析。
评论已关闭