python学习的第四天

import requests

import re

from lxmlimport html

import pandasas pd

from matplotlibimport pyplotas plt

plt.rcParams["font.sans-serif"] = ['SimHei']

plt.rcParams['axes.unicode_minus'] =False

def spider_douban(isbn):

dy_list = []

# 目标站点地址

url ='https://movie.douban.com/cinema/later/chongqing/?qq-pf-to=pcqq.group'.format(isbn)

# 获取站点str类型的响应

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

# 提取目标站的信息

selector = html.fromstring(html_data)

div_list = selector.xpath('//div[@id="showing-soon"]/div')

print('您好,共有{}家'.format(len(div_list)))

# 遍历div

for divin div_list:

        # 电影名

        dtitle = div.xpath('./div/h3/a/text()')[0].strip()

        #上映日期,

        ddata = div.xpath('./div/ul/li[1]/text()')[0]

        # 类型

        dtype = div.xpath('./div/ul/li[2]/text()')[0]

        # 上映国家

        dc = div.xpath('./div/ul/li[3]/text()')[0]

        # 想看人数

        dnum = div.xpath('./div/ul/li[4]/span/text()')[0]

dnum =int(dnum.replace('人想看', ''))

# 添加每一个商家的图书信息

dy_list.append({

'dtitle':dtitle,

            'ddata':ddata,

            'dtype':dtype,

            'dc':dc,

            'dnum':dnum

})

# 按照人气进行排序

dy_list.sort(key=lambda x: x['dnum'], reverse=True)

# 展示人气最高的前5 柱状图

# 电影的名称

top5_dy = [dy_list[i]for iin range(5)]

top5_dy.sort(key=lambda x: x['dnum'])

x = [x['dtitle']for xin top5_dy]

# 电影的人气

y = [x['dnum']for xin top5_dy]

plt.barh(x, y)

plt.show()

# 存储成csv文件

df = pd.DataFrame(dy_list)

df.to_csv('douban.csv')

# 电影国家的占比图 饼图

dc_list = [dc_list['dc']for dc_listin dy_list]

counts = {}

for wordin dc_list:

counts[word] = counts.get(word, 0) +1

    items =list(counts.items())

dcounts = []

dlabels = []

for iin range(len(items)):

role, count = items[i]

dcounts.append(count)

dlabels.append(role)

explode = [0, 0, 0, 0]

colors = ['red', 'purple', 'blue', 'yellow']

plt.pie(dcounts, explode=explode, shadow=True, labels=dlabels, autopct='%1.1f%%', colors=colors)

plt.legend(loc=2)

plt.axis('equal')

plt.show()

spider_douban('9787115428028')

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

推荐阅读更多精彩内容

  • 爬虫 爬虫(又被称为网页蜘蛛,网络机器人),它是一种按照一定的规则,自动地抓取互联网信息的程序或者脚本。也即它是一...
    小頴子阅读 213评论 0 0
  • 一、爬虫 1.本地提取 ①.新建html文件 界面如下: ②.读取③.使用xpath语法进行提取使用lxml提取h...
    唐旭涛阅读 316评论 0 0
  • 1、爬虫一些知识 (1)节点选择语法 XPath使用路径表达式来选取XML文档中的节点或者节点集。这些路径表达式和...
    小乌龟快点跑吖阅读 348评论 0 0
  • 一、爬虫 爬虫(又被称为网页蜘蛛,网络机器人),它是一种按照一定的规则,自动地抓取互联网信息的程序或者脚本。也即它...
    喵青禾阅读 381评论 0 0
  • 有人曾问我,做一名医护工作者很辛苦,你后不后悔当初的选择?说实话,有过后悔,比如没有固定的节假日,不能与亲朋好友及...
    瓜子读书阅读 571评论 0 0