先上圖(騙你們學(xué)python,再騙你們用pyecharts)

柱狀圖.png
pyecharts這個(gè)插件很牛逼,可以生成各種圖表,其次就是BeautifulSoup,識(shí)別html
ide可以vscode也可以pycharm都很好用
# 可視化爬取結(jié)果
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
# 請(qǐng)求網(wǎng)頁(yè)
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
# 先把所有的數(shù)據(jù)存到這個(gè)list里面
all_movies_info = []
for each_movie in all_movies.find_all('div', class_="item"): # 從最大的div里面找到影片的div
# print(each_movie) # 輸出每個(gè)影片div的內(nèi)容
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('人想看', '') # 去掉除了數(shù)字之外的字
# 把電影數(shù)據(jù)添加到list
all_movies_info.append({'name': movie_name, 'date': movie_date, 'type': movie_type,
'area': movie_area, 'lovers': movie_lovers})
# print('名字:{},日期:{},類(lèi)型:{},地區(qū):{}, 關(guān)注者:{}'.format(
# movie_name, movie_date, movie_type, movie_area, movie_lovers))
# 繪制關(guān)注者排行榜圖
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 版本開(kāi)始支持鏈?zhǔn)秸{(diào)用
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()