python3 抓取当月豆瓣电影生成图表

先上图(骗你们学python,再骗你们用pyecharts)


柱状图.png

pyecharts这个插件很牛逼,可以生成各种图表,其次就是BeautifulSoup,识别html
ide可以vscode也可以pycharm都很好用

# 可视化爬取结果
import requests
from bs4 import BeautifulSoup  # 从bs4引入BeautifulSoup
from pyecharts.charts import Page, Pie, Bar  # 引入绘图需要的模块
from pyecharts import options as opts
import datetime


if __name__ == '__main__':
    now_month = datetime.datetime.now().month
    # 请求网页
    url = "https://movie.douban.com/cinema/later/chengdu/"
    response = requests.get(url)

    soup = BeautifulSoup(response.content.decode('utf-8'), 'html5lib')

    all_movies = soup.find('div', id="showing-soon")  # 先找到最大的div

    # 先把所有的数据存到这个list里面
    all_movies_info = []
    for each_movie in all_movies.find_all('div', class_="item"):  # 从最大的div里面找到影片的div
        # print(each_movie)  # 输出每个影片div的内容
        all_a_tag = each_movie.find_all('a')
        all_li_tag = each_movie.find_all('li')
        movie_name = all_a_tag[1].text
        moive_href = all_a_tag[1]['href']
        movie_date = all_li_tag[0].text
        movie_type = all_li_tag[1].text
        movie_area = all_li_tag[2].text
        movie_lovers = all_li_tag[3].text.replace('人想看', '')  # 去掉除了数字之外的字
        # 把电影数据添加到list
        all_movies_info.append({'name': movie_name, 'date': movie_date, 'type': movie_type,
                                'area': movie_area, 'lovers': movie_lovers})
        # print('名字:{},日期:{},类型:{},地区:{}, 关注者:{}'.format(
        # movie_name, movie_date, movie_type, movie_area, movie_lovers))
        # 绘制关注者排行榜图
    sort_by_lovers = sorted(all_movies_info, key=lambda x: int(x['lovers']))
    all_names = [i['name'] for i in sort_by_lovers]
    all_lovers = [i['lovers'] for i in sort_by_lovers]

    print(sort_by_lovers)
    # V1 版本开始支持链式调用
    bar = (
        Bar()
            .add_xaxis(all_names)
            .add_yaxis("电影资讯", all_lovers)
            .reversal_axis()
            .set_series_opts(label_opts=opts.LabelOpts(position="right"))
            .set_global_opts(title_opts=opts.TitleOpts(title=str(now_month) + "月豆瓣电影排行"))
    )
    bar.render()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容