【Python数据分析案例】——中国高票房电影分析(爬虫获取数据及分析可视化全流程)
warning:
这篇文章距离上次修改已过187天,其中的内容可能已经有所变动。
由于原代码已经提供了一个很好的实例,这里我们只需要提取关键部分的代码来解决问题。
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进行数据可视化。这个流程是进行网络数据分析的标准流程,适用于多种类型的数据分析。
评论已关闭