爬取豆瓣Top250数据并且数据可视化

话不多说,直接上代码

爬虫代码展示

-*- codeing = utf-8 -*-
from bs4 import BeautifulSoup  # 网页解析,获取数据
import re  # 正则表达式,进行文字匹配`
import urllib.request, urllib.error  # 制定URL,获取网页数据
import xlwt  # 进行excel操作findLink = re.compile(r'<a href="(.*?)">')  # 创建正则表达式对象,标售规则   影片详情链接的规则
findImgSrc = re.compile(r'<img.*src="(.*?)"', re.S)
findTitle = re.compile(r'<span class="title">(.*)</span>')
findRating = re.compile(r'<span class="rating_num" property="v:average">(.*)</span>')
findJudge = re.compile(r'<span>(\d*)人评价</span>')
findInq = re.compile(r'<span class="inq">(.*)</span>')
findBd = re.compile(r'<p class="">(.*?)</p>', re.S)def main():baseurl = "https://movie.douban.com/top250?start="  #要爬取的网页链接# 1.爬取网页datalist = getData(baseurl)savepath = ".\\豆瓣电影Top250.xls"    #当前目录新建XLS,存储进去# dbpath = "movie.db"              #当前目录新建数据库,存储进去# 3.保存数据saveData(datalist,savepath)      #2种存储方式可以只选择一种# saveData2DB(datalist,dbpath)#爬取网页
def getData(baseurl):datalist = []  #用来存储爬取的网页信息for i in range(0, 10):  # 调用获取页面信息的函数,10次url = baseurl + str(i * 25)html = askURL(url)  # 保存获取到的网页源码# 2.逐一解析数据soup = BeautifulSoup(html, "html.parser")for item in soup.find_all('div', class_="item"):  # 查找符合要求的字符串data = []  # 保存一部电影所有信息item = str(item)link = re.findall(findLink, item)[0]  # 通过正则表达式查找data.append(link)imgSrc = re.findall(findImgSrc, item)[0]data.append(imgSrc)titles = re.findall(findTitle, item)if (len(titles) == 2):ctitle = titles[0]data.append(ctitle)otitle = titles[1].replace("/", "")  #消除转义字符data.append(otitle)else:data.append(titles[0])data.append(' ')rating = re.findall(findRating, item)[0]data.append(rating)judgeNum = re.findall(findJudge, item)[0]data.append(judgeNum)inq = re.findall(findInq, item)if len(inq) != 0:inq = inq[0].replace("。", "")data.append(inq)else:data.append(" ")bd = re.findall(findBd, item)[0]bd = re.sub('<br(\s+)?/>(\s+)?', "", bd)bd = re.sub('/', "", bd)data.append(bd.strip())datalist.append(data)return datalist得到指定一个URL的网页内容
def askURL(url):head = {  # 模拟浏览器头部信息,向豆瓣服务器发送消息"User-Agent": "Mozilla / 5.0(Windows NT 10.0; Win64; x64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 80.0.3987.122  Safari / 537.36"}# 用户代理,表示告诉豆瓣服务器,我们是什么类型的机器、浏览器(本质上是告诉浏览器,我们可以接收什么水平的文件内容)request = urllib.request.Request(url, headers=head)html = ""try:response = urllib.request.urlopen(request)html = response.read().decode("utf-8")except urllib.error.URLError as e:if hasattr(e, "code"):print(e.code)if hasattr(e, "reason"):print(e.reason)return html#保存数据到表格
def saveData(datalist,savepath):print("save.......")book = xlwt.Workbook(encoding="utf-8",style_compression=0) #创建workbook对象sheet = book.add_sheet('豆瓣电影Top250', cell_overwrite_ok=True) #创建工作表col = ("电影详情链接","图片链接","影片中文名","影片外国名","评分","评价数","概况","相关信息")for i in range(0,8):sheet.write(0,i,col[i])  #列名for i in range(0,250):# print("第%d条" %(i+1))       #输出语句,用来测试data = datalist[i]for j in range(0,8):sheet.write(i+1,j,data[j])  #数据book.save(savepath) #保存if __name__ == "__main__":  # 当程序执行时# 调用函数main()# init_db("movietest.db")print("爬取完毕!")

数据可视化

#数据分析只能分析int类型的整数
#图片:png,jpeg,jpg pandas:数据操作和处理-excel表格
import pandas#数据分析 圆饼图,柱状图,不同的形状图matplotlib绘图
from pyecharts.charts import Bar #生成图表的库 Bar创建柱状图
from pyecharts import options as opts#加载/读取Excel表格文件
pd_excel=pandas.read_excel('豆瓣电影Top250.xls')
#简单的数据清洗,字段降序排序
df=pd_excel.sort_values(by = "评价数",ascending = False)
#print(df)#创建柱状图
c = (#创建柱图对象,并设置大小,也可以不设置,直接使用默认大小即可Bar(init_opts=opts.InitOpts(width="900px", height="500px"))#设置X轴数据系列,只取前10个数据,并转为列表格式.add_xaxis(df.影片中文名[:10].tolist())#设置Y轴数据系列及显示颜色,只取前10个数据,并转为列表格式.add_yaxis("评价数量", df.评价数[:10].tolist(),color = "RGB(135, 206, 235)")# 设置图表标题及位置 全局变量.set_global_opts(title_opts=opts.TitleOpts(title="电影评价数TOP10",pos_left="left"),xaxis_opts=opts.AxisOpts( axislabel_opts={"rotate":30}))#通过render()方法将柱图在Web中渲染为html.render("柱形图-评价数.html")
)


柱状图


折线图
饼状图

好啦 完成啦 !

爬取豆瓣Top250数据并且可视化相关推荐

  1. scrapy爬取豆瓣top250电影数据

    scrapy爬取豆瓣top250电影数据 scrapy框架 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. sc ...

  2. python爬虫拉取豆瓣Top250数据

    python爬虫拉取豆瓣Top250数据 利用request和正则表达式抓取豆瓣电影Top250的相关内容,提取出电影的名称.时间.评分和图片等信息,提取的站点url为https://movie.do ...

  3. python豆瓣历史评分_Python实战-爬取豆瓣top250评分高于指定值的电影信息

    思路 1. 要获得怎么样的数据 2. 找到数据来源 3. 模拟浏览器发送请求获得数据 4. 处理数据,保存数据 第一步: 在这里数据是豆瓣top250中高于指定分数的电影信息 信息有:名称,评分,格言 ...

  4. lxml 爬取豆瓣top250

    lxml 爬取豆瓣top250 菜鸟奋战10小时,得到豆瓣top250 from time import sleepimport urllib3 import pandas as pd urllib3 ...

  5. python实现爬虫探探_全栈 - 9 实战 爬取豆瓣电影数据

    这是全栈数据工程师养成攻略系列教程的第九期:9 实战 爬取豆瓣电影数据. 掌握了爬虫的基本原理和代码实现,现在让我们通过实战项目巩固一下. 确定目标 在写爬虫之前应当想清楚:我需要哪方面的数据?需要包 ...

  6. 爬取豆瓣top250电影并分析

    爬取豆瓣top250电影,提取评论关键词,然后将同一国家的关键词做成一个词云,轮廓是每个国家的地图轮廓 爬取数据 需要爬取电影名称.导演.年份.地区和前10个评论除了地区,其他的都没什么问题,我们来研 ...

  7. python 爬取豆瓣某一主题书单_Python爬虫 || 使用requests和xpath爬取豆瓣Top250书单内容全解。...

    昨天,我们了解了如何爬取豆瓣某一个电影固定的位置信息,包含电影名称.导演.演员及评分等,今天我们来了解一下如何爬取豆瓣Top250书单,并如何将爬取到的内容存放到本地. 废话不多说了,shou my ...

  8. Python25行代码爬取豆瓣排行榜数据

    Python25行代码爬取豆瓣排行榜数据 只需要用到requests, re ,csv 三个库即可. code import re import requests import csv url = ' ...

  9. Python爬虫入门 | 4 爬取豆瓣TOP250图书信息

      先来看看页面长啥样的:https://book.douban.com/top250   我们将要爬取哪些信息:书名.链接.评分.一句话评价--   1. 爬取单个信息 我们先来尝试爬取书名,利用之 ...

最新文章

  1. 根据字段的不同内容分类汇总 - 球队的胜负次数统计
  2. 反光衣识别算法冠军方案总结(附源码)|极市打榜
  3. Community Server配置对网址中的www信息处理功能分析 [转]
  4. 详尽kmp_详尽的分步指南,用于数据准备
  5. 【C语言进阶深度学习记录】二十 结构体大小计算与结构体内存布局的详细方法
  6. Fegin拦截器解决各微服务之间数据下沉
  7. RHEL5中mdadm配置raid5磁盘阵列
  8. oracle 查询 约束
  9. python类方法在类外定义_第7.15节 Python中classmethod定义的类方法详解
  10. librdkafka配置
  11. python模块中函数的用法_怎么使用help函数查看python模块中函数的用法
  12. 对 Python 代码使用的词语标记化器 tokenize,你懂了吗?【Python|标准库|tokenize】
  13. AI - Intelligent Agents
  14. java兔子繁殖_兔子繁衍问题 (考虑死亡)
  15. 图片转cad用什么软件?转换有技巧
  16. 起重吊装资质证书如何办理通过?经验之谈
  17. 华为手机怎么用云歌_华为手机功能之语音助手小艺,带你了解小艺的使用方式...
  18. 基于深度学习的图像超分辨率方法 总结
  19. android 加载动画素材,八种APP启动界面的Loading进度条设计动效方案
  20. 运维生涯中总有一次痛彻心扉的rm命令

热门文章

  1. Turtlebot4入门教程-快速开始
  2. 详解Seaborn,看这一篇就够了
  3. 无形资产评估对企业的作用
  4. matlab szj,matlab求微分方程的解实验报告4.doc
  5. dubbo-router
  6. 计算机专业该怎么学习
  7. 酷炫猜歌喝酒小程序源码_可开源带流量主
  8. 安卓机型 刷机 搞机 清除数据的一些操作方法和常见的系统分区解释
  9. 基于STM32的物联网智能家居语音控制系统设计
  10. uni-app中实现微信|支付宝支付