level 2:
10、案例:编写爬虫爬取豆瓣电影排行榜(电影名称,评分),保存为csv文件
a、用numpy加载csv数据
b、把评分列转换成float64类型
c、计算电影的平均评分
d、求评分最高的电影
e、求评分在9分以上的电影
"""

import requests
from lxml import etree
import csv
import numpy as np
def getHtml():
url = 'https://movie.douban.com/chart'
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0",
'Cookie':'ll="118237"; bid=kQ4wCGaUHxM; dbcl2="198098900:5Dr+gGK65ck"; ck=u-be; _pk_id.100001.4cf6=842ffa65a9a6b8b3.1560771548.1.1560771681.1560771548.; _pk_ses.100001.4cf6=*; __yadk_uid=ACadYi5zL218X3UjCuwIiXTk7lThAmup; __utma=30149280.26375845.1560771555.1560771555.1560771555.1; __utmb=30149280.2.10.1560771555; __utmc=30149280; __utmz=30149280.1560771555.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=223695111.1679117071.1560771555.1560771555.1560771555.1; __utmb=223695111.0.10.1560771555; __utmc=223695111; __utmz=223695111.1560771555.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); push_noty_num=0; push_doumail_num=0; _vwo_uuid_v2=D0397C64E4418CF03F84A9F99DED3AE28|9c841c774e9ad1066dc8a2ca931d9a9a; __utmt=1; __utmv=30149280.19809'
}
# 1.请求网页源代码
strHtml = requests.get(url,headers=headers).text
# print(strHtml)
"""
页面分析之标题:
<a class="nbg" href="https://movie.douban.com/subject/27060077/" title="绿皮书">
<a class="nbg" href="https://movie.douban.com/subject/27053945/" title="我们">
页面分析之评分:
<span class="rating_nums">8.9</span>
<span class="rating_nums">6.6</span>
"""
#2. 数据提取
html = etree.HTML(strHtml)
# 获取到电影名称
tittle = html.xpath('//tr[@class="item"]//a/@title')
print(tittle)
# 获取到评分
grade = html.xpath('//span[@class="rating_nums"]/text()')
print(grade)
# 3.处理数据(使用拉链函数,让数据一一对应)
list=[]
res=zip(tittle,grade)
for i in res:
# 将元组数据保存进列表中
list.append(i)
# print(list)
# 4.保存成csv文件
with open('./doubandianying.csv','w',) as f:
csv_f = csv.writer(f)
# 添加第一行
csv_f.writerow(["title","grade"])
# 将数据遍历存储
for row in list:
csv_f.writerow(row)

def loadTxt():
filePath = './doubandianying.csv'
res=np.loadtxt(
filePath,
delimiter=',',
dtype=str,
usecols=(0,1),
skiprows=1
)
return res

def chage():
filePath = './doubandianying.csv'
res = np.loadtxt(
filePath,
delimiter=',',
dtype=str,
usecols=(1),
skiprows=1
)
res = res.astype(np.float)
return res

def mean(gradeFloat):
mean = np.mean(gradeFloat)
return mean

def movie(gradeFloat):
index = np.argmax(gradeFloat)
# print(index)
filePath = './doubandianying.csv'
title = np.loadtxt(
filePath,
delimiter=',',
dtype=str,
usecols=(0),
skiprows=1
)
# print(title)
return title[index]
# index = np.argmin(gradeFloat)

def movies(gradeFloat):

res = gradeFloat[(gradeFloat>9)]
print(res)

if __name__ == '__main__':
# 1.爬取数据
getHtml()

# 2.加载数据
lt = loadTxt()
print(lt)

# 3.将分数列转换成浮点类型
gradeFloat = chage()
print(gradeFloat)
print(type(gradeFloat))

# 4.计算电影的平均分
gradeMean = mean(gradeFloat)
print(gradeMean)

# 5.评分最高的电影
movieFirst = movie(gradeFloat)
print(movieFirst)

# 6. q求评分高于9分以上的电影 (无)
movies = movies(gradeFloat)

01爬取豆瓣网电影数据进行numpy的练习的更多相关文章

  1. 基础爬虫,谁学谁会,用requests、正则表达式爬取豆瓣Top250电影数据!

    爬取豆瓣Top250电影的评分.海报.影评等数据!   本项目是爬虫中最基础的,最简单的一例: 后面会有利用爬虫框架来完成更高级.自动化的爬虫程序.   此项目过程是运用requests请求库来获取h ...

  2. Python3爬取豆瓣网电影信息

      # -*- coding:utf-8 -*- """ 一个简单的Python爬虫, 用于抓取豆瓣电影Top前250的电影的名称 Language: Python3.6 ...

  3. 实例学习——爬取豆瓣网TOP250数据

    开发环境:(Windows)eclipse+pydev 网址:https://book.douban.com/top250?start=0 from lxml import etree #解析提取数据 ...

  4. requests爬取豆瓣top250电影信息

    ''' 1.爬取豆瓣top250电影信息 - 第一页: https://movie.douban.com/top250?start=0&filter= - 第二页: https://movie ...

  5. 爬取豆瓣网图书TOP250的信息

    爬取豆瓣网图书TOP250的信息,需要爬取的信息包括:书名.书本的链接.作者.出版社和出版时间.书本的价格.评分和评价,并把爬取到的数据存储到本地文件中. 参考网址:https://book.doub ...

  6. 基于爬取百合网的数据,用matplotlib生成图表

    爬取百合网的数据链接:http://www.cnblogs.com/YuWeiXiF/p/8439552.html 总共爬了22779条数据.第一次接触matplotlib库,以下代码参考了matpl ...

  7. Python-爬虫实战 简单爬取豆瓣top250电影保存到本地

    爬虫原理 发送数据 获取数据 解析数据 保存数据 requests请求库 res = requests.get(url="目标网站地址") 获取二进制流方法:res.content ...

  8. 爬虫入门(四)——Scrapy框架入门:使用Scrapy框架爬取全书网小说数据

    为了入门scrapy框架,昨天写了一个爬取静态小说网站的小程序 下面我们尝试爬取全书网中网游动漫类小说的书籍信息. 一.准备阶段 明确一下爬虫页面分析的思路: 对于书籍列表页:我们需要知道打开单本书籍 ...

  9. python3爬取豆瓣top250电影

    需求:爬取豆瓣电影top250的排名.电影名称.评分.评论人数和一句话影评 环境:python3.6.5 准备工作: 豆瓣电影top250(第1页)网址:https://movie.douban.co ...

  10. 003.[python学习] 简单抓取豆瓣网电影信息程序

    声明:本程序仅用于学习爬网页数据,不可用于其它用途. 本程序仍有很多不足之处,请读者不吝赐教. 依赖:本程序依赖BeautifulSoup4和lxml,如需正确运行,请先安装.下面是代码: #!/us ...

随机推荐

  1. 使用 flex布局 制作携程网首页

    1. 技术选型 2. 搭建相关文件夹结构 3. 引入视口标签以及初始化样式 4. 常用初始化样式 5. 首页布局分析以及搜索模块布局 index.css /*搜索模块*/ .search-index{ ...

  2. 为什么sleeping的会话会造成阻塞

    背景 客户反映HIS数据库每天22点后都会发生阻塞,阻塞的源头是一个sleeping的会话,越阻塞越多,只能通过手动KILL掉才能解决,十分不解为什么状态为sleeping的会话会造成阻塞. 现象 在 ...

  3. EF Core DBFirst和CodeFirst 模式使用方法

    一.安装依赖包 1.Microsoft.EntityFrameworkCore 2.Microsoft.EntityFrameworkCore.Tools 3.Microsoft.EntityFram ...

  4. 制作 2D 素材|基于 AI 5 天创建一个农场游戏,第 4 天

    欢迎使用 AI 进行游戏开发! 在本系列中,我们将使用 AI 工具在 5 天内创建一个功能完备的农场游戏.到本系列结束时,您将了解到如何将多种 AI 工具整合到游戏开发流程中.本系列文章将向您展示如何 ...

  5. SQL笔试真题练习

    一.现有以下两张表: 第一张表名为cust,其表结构如下: 字段名 字段说明 是否主键 Studentno 学号,数据类型为整型的 是 Name 学生名字,数据类型为字符串型的 否 Address 学 ...

  6. 五:spring boot

    五.spring boot 通过springboot可以快速的搭建一个基于ssm框架的Java application,简单配置,自动装配. JavaConfiguration用java类来替代xml ...

  7. Cesium计算多边形面积(十一)

    //计算三角形面积 function triangleArea(p0, p1, p2) { let v0 = Cesium.Cartesian3.subtract(p0, p1, new Cesium ...

  8. JZOJ 4276【NOIP2015模拟10.28A组】递推

    [NOIP2015模拟10.28A组]递推 思路一 对于 \(30%\) 的数据,由于 \(n\) 和 \(x_i\) 都比较小,所以依题暴力枚举每个整点的坐标算贡献即可 思路二 对于额外 \(20% ...

  9. sql查询多个结果字段通过逗号分隔为同一行显示、sql查询结果有符号分隔的字段拆分多行显示

    一.sql查询多个结果通过逗号分隔为同一行显示 sql查询数据结果 select e.ctrl_desc from t_ctrl_entry e inner join CodeGroupKeyCode ...

  10. SystemVerilog Tutorial

    来自网站 1.网站说明-tutorial This SystemVerilog tutorial is written to help engineers with background in Ver ...