python学习第四天

作业

内容

  • 导入包
import requests #请求
from lxml import html#解析
from matplotlib import pyplot as plt#绘图
#绘图汉字编码
plt.rcParams["font.sans-serif"] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

-导入域名

url ='http://movie.douban.com/cinema/later/chongqing/'#豆瓣重庆影讯

-将爬取到的电影信息按"想看人数的由多到少"排序输出

info_list=[]#存电影信息
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"}
resp = requests.get(url, headers=headers)
html_data = resp.text

with open('douban.html','w',encoding='utf-8') as f:
    f.write(html_data)

# print(resp.text)


selector = html.fromstring(html_data)
movie_list = selector.xpath('//div[@id="showing-soon"]/div')
print(movie_list)

name_list = selector.xpath('//div[@id="showing-soon"]/div/div/h3/a/text()')
# print(name_list)
cishu=0
for i in movie_list:
    # 电影名称
    name=i.xpath('//div[@id="showing-soon"]/div/div/h3/a/text()')[cishu]
    # print(name)
    # 上映日期
    date=i.xpath('//div[@id="showing-soon"]/div/div/ul/li[1]/text()')[cishu]
    # 类型
    type=i.xpath('//div[@id="showing-soon"]/div/div/ul/li[2]/text()')[cishu]
    # 上映国家
    country=i.xpath('//div[@id="showing-soon"]/div/div/ul/li[3]/text()')[cishu]
    # 想看人数

    people=i.xpath('//div[@id="showing-soon"]/div/div/ul/li[4]/span/text()')[cishu]
    # cishu+=1
    people=int(people.replace('人想看','   '))
    info_list.append({
        'name':name,
        'date':date,
        'type':type,
        'country':country,
        'people':people
    })
    # print(info_list)
    cishu += 1
info_list.sort(key=lambda x:x['people'], reverse=True)
for m in info_list:
    print(m)

-绘制上映电影国家占比图

#上映国家
country_list=[]
for i in info_list:
    country_list.append(i['country'])
cou = {}#将国家与次数弄成一个键值对
for word in country_list:
    cou[word]=cou.get(word, 0)+1
print(len(cou))
times = list(cou.items())
coun=[]#国家放在一个列表
cons=[] #次数放在一个列表
for i in range(len(cou)):
    guojia,ci=times[i]
    guojia=str(guojia)
    ci=int(ci)
    coun.append(guojia)
    cons.append(ci)

print(coun)#输出国家
print(cons)#输出次数
#绘制占比图
# 距离圆心点距离
explode = [0.1, 0, 0, 0]
colors = ['red', 'purple', 'blue', 'yellow']
plt.pie(cons, explode=explode, shadow=True, labels=coun, autopct='%1.1f%%', colors=colors)
plt.legend(loc=2)
plt.axis('equal')
plt.show()

-占比图:


上映电影国家占比图

-绘制top5最想看电影
上面已经给电影信息排过名了

top5_movie = [info_list[i] for i in range(5)]
print(top5_movie)
x=[x['name'] for x in top5_movie]

y=[x['people'] for x in top5_movie]

plt.barh(x,y)
plt.show()
  • Top5最想看电影图:


    Top5最想看电影图
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 爬虫----大数据 XPath语法和lxml模块 一、 提取本地html中的数据 新建html文件 读取 使用x...
    余生只有一个容EuniceTo阅读 413评论 0 0
  • python爬虫 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息。 提取网页数据 字典定义...
    deiend阅读 235评论 0 0
  • 1.爬虫 大数据 , 提取本地hmtl中的数据 步骤①新建html文件②读取③使用lxml中的xpath语法进行提...
    梅若吖阅读 227评论 0 0
  • 练习爬虫爬取网页电影信息 -首先,导入包 -设置域名 -设置爬取信息时的访问用户信息 之前列表字典的区别有些没分清...
    幻的風阅读 186评论 0 0
  • 今天主要是让自己完成一个项目,自己动手去爬取猫眼电影top100具体实现如下,仅供参考 猫眼电影top100 图片...
    苦难_69e0阅读 212评论 1 1