Python爬虫爬取电影票房数据及图表展示操作示例
作者:OldKind超 发布时间:2021-07-18 08:34:32
标签:Python,爬虫,爬取
本文实例讲述了Python爬虫爬取电影票房数据及图表展示操作。分享给大家供大家参考,具体如下:
爬虫电影历史票房排行榜 http://www.cbooo.cn/BoxOffice/getInland?pIndex=1&t=0
Python爬取历史电影票房纪录
解析Json数据
横向条形图展示
面向对象思想
导入相关库
import requests
import re
from matplotlib import pyplot as plt
from matplotlib import font_manager
import json
类代码部分
class DYOrder(object):
#初始化
def __init__(self,page=1):
self.url = 'http://www.cbooo.cn/BoxOffice/getInland?pIndex={}&t=0'.format(page)
self.headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'}
#请求
def __to_request(self):
response = requests.get(url=self.url,headers=self.headers)
return self.__to_parse(response.content.decode('utf-8'))
#解析
def __to_parse(self,html):
#返回为JSON字符串
#首先将字符串反序列化为JSON对象
my_json = json.loads(html)
return my_json
#图表展示
def __to_show(self,data,show_type):
x = []
y = []
for value in data:
x.append(value['MovieName'])
y.append(int(value['BoxOffice']))
my_font = font_manager.FontProperties(fname='/System/Library/Fonts/PingFang.ttc',size=18)
if show_type == 1:
plt.figure(figsize=(20,8),dpi=80)
rects = plt.bar(range(len(x)),[float(i) for i in y],width=0.5,color='red')
plt.xticks(range(len(x)),x,fontproperties=my_font,rotation=60)
plt.xlabel('名称',rotation=60,color='blue',fontproperties=my_font)
plt.ylabel('票房/万',rotation=60,color='blue',fontproperties=my_font)
for rect in rects:
height = rect.get_height()
plt.text(rect.get_x() + rect.get_width()/2,height+0.4,str(height),ha='center',rotation=30)
else:
# 横向 plt.barh(y,x)
plt.figure(figsize=(15,13),dpi=80)
rects = plt.barh(range(len(x)),y,height=0.8,color='orange')
plt.yticks(range(len(x)),x,fontproperties=my_font,rotation=30)
plt.ylabel('名称',rotation=0,color='blue',fontproperties=my_font)
plt.xlabel('票房/万',rotation=60,color='blue',fontproperties=my_font)
for rect in rects:
width = rect.get_width()
plt.text(width, rect.get_y()+0.3/2,str(width),va='center',rotation=30)
plt.grid(alpha=0.4)
plt.title('中国电影历史票房排行榜',color='red',size=18,fontproperties=my_font)
plt.show()
#所有操作
def to_run(self,show_type=1):
result = self.__to_request()
self.__to_show(result,show_type)
调用类并展示
if __name__ == '__main__':
dy_order = DYOrder(1)
# type 1 竖向条形图 2 横向
dy_order.to_run(2)
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/qq_36261130/article/details/100556017


猜你喜欢
- mysql报如下错误,截取部分,message from server: "Host '****' is not
- 导语:哈喽,哈喽~小编不知道你有没有经历过,想联系一位很长时间没有联系的朋友,发现对方很早以前已经把你删除了,而你还一无所知。反正小编经历过
- 一、人脸图像特征提取方法https://www.jb51.net/article/219446.htm二、对笑脸数据集genki4k进行训练
- Scrapy是什么?先看官网上的说明,http://scrapy-chs.readthedocs.io/zh_CN/latest/intro
- 问题描述:想要去掉图像背景,只保留中心部分目标:1.利用ITK-SNAP制作二值化标签(即mask)2.利用软件ITK-SNAP把一幅图像中
- LOAD DATA INFILE '文件地址' INTO TABLE 表名 FIELDS TERMINATED BY
- Goland是JetBrains公司出品的一款开发Golang的工具。由于本人是JetBrains公司产品的重度使用者,好多都作为主力开发工
- 前言在之前写过一篇博客"关系数据库如何快速查询表的记录数",里面介绍了使用sp_spaceused查看表的记录数是否正确
- 我会随便说,C++ 近年来开始"抄袭" Python 么?我只会说,我在用 C++ 来学习 Python.不信?来跟着我
- 解析器解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己想要的数据类型的过程.本质就是对请求体中的数据进行解析.Content-
- 二维列表转一维列表from compiler.ast import flattena=[[1,2],[5,6]]print(flatten(
- 最常见的XML数据类型有:Element, Attribute,Comment, Text. &nbs
- 先看下jupyter和pycharm环境的差别左边是jupyter-------------------------------------
- xlabel(‘time',‘FontSize',12);如果没有设置位置,默认是在中间在xlabel中也有position
- 刚刚心血来潮,编了一个国际域名查询的功能页面,比较简单,没有做什么美化和修饰,主要利用了服务器端的XMLHTTP访问第三方服务器实现域名查询
- 大家是否还记得1983年任天堂的著名游戏《超级玛丽》里那个留着胡子的意大利水管工人,还有日本konami公司1987年发行的射击游戏《魂斗罗
- 注意事项[object] * n 的时候并没有复制n-1个object,而是增加了n-1个对object的引用。例子说明目标:生成一个10*
- 为了方便使用分类,我定义了一个分类表category,里面字段是id(自动编号) cat_name(分类名) pare
- 前言在JavaScript中,数据类型分为两大类,一种是基础数据类型,另一种则是复杂数据类型,又叫引用数据类型基础数据类型:数字Number
- python保存文本文件的方法:使用python内置的open()类可以打开文本文件,向文件里面写入数据可以用write()函数,写完之后,