作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3075

一.爬虫对象

猫眼电影TOP100排行榜

二.代码如下

import requests
import re,json
from lxml import etree
import csv class Spider():
def open_csv(self):
'''
在CSV文件的开头写一行标题
:return:
'''
with open('data.csv', 'a', newline='', encoding='utf-8') as f:
spamwriter = csv.writer(f)
spamwriter.writerow(['名称', '主演', '上映时间', '评分']) def __get_page(self,url,headers):
'''
获取文本内容
:param url:
:param headers:
:return:
'''
try:
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.text
else:
return None
except Exception:
return None def __parse_page(self,html):
'''
解析HTML,并得到提取的数据
:param html:
:return:
'''
data = etree.HTML(html) results = data.xpath('//*[@class="board-wrapper"]/dd/div/div')
for result in results:
# 电影名称 电影主演 电影上映日期 评分
ws = [
result.xpath('./div[1]/p[1]/a/text()')[0],
result.xpath('./div[1]/p[2]/text()')[0].strip(),
result.xpath('./div[1]/p[3]/text()')[0],
result.xpath('./div[2]/p/i[1]/text()')[0] + result.xpath('./div[2]/p/i[2]/text()')[0],
] #保存到CSV
with open('data.csv', 'a', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(ws) def run(self):
'''
程序运行入口
:return:
'''
self.open_csv() for i in range(11):
url ='http://maoyan.com/board/4?offset={}'.format(10*i)
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64)'
' AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}
html = self.__get_page(url,headers)
self.__parse_page(html) #实例化类
spider = Spider()
spider.run()

三.运行结果

四.数据分析

(1)电影评分比例

一部电影质量由评分能直接体现出来,而总体评分分布能体现出播放器的质量。

由上图看出8.8-9.1分数的电影比较多,所以猫眼电影的质量还是可以的。

(2)电影的成功除了质量之外,发布的时间也是很重要的。

大家看电影都知道,电影基本在假期上映更有热度,这里统计出来,发现下半年的电影比上半年电影好很多。

(3)通过数据透视表可以看出,在猫眼电影TOP100排行榜中,有一部由周星驰主演的《大话西游之月光宝盒》评分远远超过其他的电影,看来星爷的经典难以被超越

【爬虫综合作业】猫眼电影TOP100分析的更多相关文章

  1. python3爬虫爬取猫眼电影TOP100(含详细爬取思路)

    待爬取的网页地址为https://maoyan.com/board/4,本次以requests.BeautifulSoup css selector为路线进行爬取,最终目的是把影片排名.图片.名称.演 ...

  2. <scrapy爬虫>爬取猫眼电影top100详细信息

    1.创建scrapy项目 dos窗口输入: scrapy startproject maoyan cd maoyan 2.编写item.py文件(相当于编写模板,需要爬取的数据在这里定义) # -*- ...

  3. python 爬取猫眼电影top100数据

    最近有爬虫相关的需求,所以上B站找了个视频(链接在文末)看了一下,做了一个小程序出来,大体上没有修改,只是在最后的存储上,由txt换成了excel. 简要需求:爬虫爬取 猫眼电影TOP100榜单 数据 ...

  4. PYTHON 爬虫笔记八:利用Requests+正则表达式爬取猫眼电影top100(实战项目一)

    利用Requests+正则表达式爬取猫眼电影top100 目标站点分析 流程框架 爬虫实战 使用requests库获取top100首页: import requests def get_one_pag ...

  5. 爬虫系列(1)-----python爬取猫眼电影top100榜

    对于Python初学者来说,爬虫技能是应该是最好入门,也是最能够有让自己有成就感的,今天在整理代码时,整理了一下之前自己学习爬虫的一些代码,今天先上一个简单的例子,手把手教你入门Python爬虫,爬取 ...

  6. # [爬虫Demo] pyquery+csv爬取猫眼电影top100

    目录 [爬虫Demo] pyquery+csv爬取猫眼电影top100 站点分析 代码君 [爬虫Demo] pyquery+csv爬取猫眼电影top100 站点分析 https://maoyan.co ...

  7. Python爬虫之requests+正则表达式抓取猫眼电影top100以及瓜子二手网二手车信息(四)

    requests+正则表达式抓取猫眼电影top100 一.首先我们先分析下网页结构 可以看到第一页的URL和第二页的URL的区别在于offset的值,第一页为0,第二页为10,以此类推. 二.< ...

  8. Python爬虫项目--爬取猫眼电影Top100榜

    本次抓取猫眼电影Top100榜所用到的知识点: 1. python requests库 2. 正则表达式 3. csv模块 4. 多进程 正文 目标站点分析 通过对目标站点的分析, 来确定网页结构,  ...

  9. 爬虫练习之正则表达式爬取猫眼电影Top100

    #猫眼电影Top100import requests,re,timedef get_one_page(url): headers={ 'User-Agent':'Mozilla/5.0 (Window ...

随机推荐

  1. 如何用ESP8266/8285做一个WIFI广告机(虚拟WiFi)

    准备工作 准备一个深圳四博智联科技有限公司的ESP-F 模组.或者四博智联科技的NODEMCU 当我们拿到ESP-F模块后,可以按照以下接线进行测试: 即 VCC.EN 接 3.3v.GPIO15 G ...

  2. Qunar入职前自学笔记

    Q1. 什么是html,html发展历程 hyperText markup language 超文本标记语言 HTML是用于描述网页文档的标记语言.现在我们常常习惯于用数字来描述HTML的版本(如:H ...

  3. python小趣味_520绘制一个心形.

    从某个公众号上看到的. 跑了一下, 居然可以成功运行. 有心的话可以研究下代码. 利用了turtle模块 #!/usr/bin/env python # coding:utf-8 import tur ...

  4. 基于ZYNQ的双核启动与通信问题解决

    1    处理器间的通信 为AMP 设计创建应用之前,您需要考虑应用如何进行通信(如有需要).最简单的方法是使用片上存储器.Zynq SoC 配备256KB 的片上SRAM,可从以下四个源地址进行访问 ...

  5. 第一条python语句!

  6. 使用TkbmMWThreadList实现线程安全列表

    2008年的2.90.00版本,作者实现了TkbmMWThreadList,之后在kbmMW 4.40.00版本,作者将TkbmMWThreadList改成了泛型版本,用以实现线程安全的列表.要使用T ...

  7. centos下搭建openstack的环境

    一.准备环境 linux (centos 7.2(C300的虚机) ) java1.8 官网下载tar包 安装前设置环境变量 JAVA_HOME=/usr/lib/jvm/java-1.8.0-ope ...

  8. iftop流量监控工具

    下载iftop工具的源码包 # wget http:oss.aliyuncs.com/aliyunecs/iftop-0.17.tar.gz 安装所需的依赖包 # yum -y install gcc ...

  9. springboot+ibatis 多数据源配置

    这个是boot基本版本包,因为我用的打包方式是war所以去除掉了boot内置的tomcat,但是为了方便测试又引入了内置tomcat,只要添加<scope>provided</sco ...

  10. sql注入练习,sqli-labs writeup

    一.Less-1 1.判断是否存在注入 URL中输入“?id=1”,发现回显有变化,说明存在注入: 2.判断闭合字符,注释后面的内容 输入“   ?id=1'  ”,回显为  "1" ...