使用Python获取“豆瓣电影”相关数据,并生成Excel表格

本文使用了requestspandas第三方库,对豆瓣电影各相关数据进行爬取,并记录至Excel表格内。但发现存在以下三个问题:

  1. 生成的Excel表格,第一个sheet页为空
  2. 数据爬取数据过长
  3. 无法获取每个标签的具体电影数量,所以我取了一个吉祥的数字520,但请各位大佬指教,若为空,则直接停止,进入下一个标签的爬取

请各位大佬进行指教,并进行优化,小弟在此谢谢!
注:要是觉得文章写得不错,记得留个赞哦!

因为如果一开始不生成一个sheet页,则无法使用ExcelWriter的方法,小弟的解决方法是使用remove方法进行移除多余的sheet页,代码如下,请各位大佬指教!

# 移除创建表格时多余的sheet页
def del_excel(self):book = load_workbook(self.fileName)ws = book["Sheet1"]book.remove(ws)book.save(self.fileName)

爬取豆瓣电影相关数据的具体代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-import requests as re
from openpyxl import load_workbook
import pandas as pd
import jsonclass DouBan:def __init__(self):self.sr1 = pd.DataFrame(columns=["评分", "电影名"], index=None)self.fileName = 'C:/Users/Administrator/Desktop/豆瓣电影评分.xlsx'# sheetName = '豆瓣电影评分'# 获取检索标签名self.tag_Movie = {0: "热门",1: "最新",2: "经典",3: "豆瓣高分",4: "冷门佳片",5: "华语",6: "欧美",7: "韩国",8: "日本",9: "动作",10: "喜剧",11: "爱情",12: "科技",13: "悬疑",14: "恐怖",15: "治愈"}def douban_movie(self):# 创建空文件self.sr1.to_excel(self.fileName, index=False, header=True)# 遍历检索标签,获取各标签的数据for tagNumber in range(0, 16):tag_Num = self.tag_Movie[tagNumber]# 将获取的数据暂存在sr3列表内sr3 = []for page_s in range(0, 20, 20):for l in self.movie_request(tag_Num, page_s):movieDetails = self.movie_details(movieID=l['id'])sr3.append({'评分': l['rate'],"电影名": l['title'],"导演": json.dumps(movieDetails["directors"], indent=0, separators=('\n', ': '),ensure_ascii=False),"主演": json.dumps(movieDetails["actors"], indent=0, separators=('\n', ': '), ensure_ascii=False),"时长": movieDetails["duration"]})self.excel_data(sr3, tag_Num)self.del_excel()  # 移除多余的sheet1页print("====数据获取成功====")# 移除创建表格时多余的sheet页def del_excel(self):book = load_workbook(self.fileName)ws = book["Sheet1"]book.remove(ws)book.save(self.fileName)# 在新的sheet页添加相应的数据,并保证数据不被覆盖def excel_data(self, sr3, tag_Num):""":param sr3::type tag_Num: object"""book = load_workbook(self.fileName)writer = pd.ExcelWriter(self.fileName, mode="a", engine="openpyxl")writer.book = booksr1 = pd.DataFrame(sr3, index=None)sr1.to_excel(writer, index=False, header=True, sheet_name=f"{tag_Num}")writer.save()  # 这步才生成文件writer.close()# 获取豆瓣电影接口数据@staticmethoddef movie_request(tag_Num, page_s):""":type page_s: object:type tag_Num: object"""url = "https://movie.douban.com/j/search_subjects"params = {"type": "movie","tag": tag_Num,"sort": "recommend","page_limit": 20,"page_start": page_s}headers = {"Authorization": "token","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.54"}movies = re.get(url, params=params, headers=headers)js = movies.json()js = js["subjects"]data = json.dumps(js, sort_keys=True, indent=4, separators=(',', ': '), ensure_ascii=False)  # 字符串转化print(data)return js# 获取电影详情@staticmethoddef movie_details(movieID):url = "https://movie.douban.com/j/subject_abstract?"params = {"subject_id": movieID}headers = {"Authorization": "token","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.54"}movies = re.get(url, params=params, headers=headers)js = movies.json()js = js["subject"]# data = json.dumps(js, sort_keys=True, indent=4, separators=(',', ': '), ensure_ascii=False)  # 字符串转化# print(data)return jsif __name__ == '__main__':DouBan = DouBan()DouBan.douban_movie()

生成的Excel表格如下,如果可以生成更漂亮的表格请指教!

【Python练习】如何使用Pandas获取“豆瓣电影”相关数据,并生成Excel表格相关推荐

  1. python爬虫爬取腾讯网站——实时疫情数据并生成Excel表格

    一.基本介绍: 开发背景:自从2020年新冠疫情发生后,至今为止的相关疫情数据新闻已经是非常的巨大了,我们无时不在在用数据尝试帮助我们解剖全球的疫情状况.由此可见,新冠疫情数据的新闻报道数量与国内疫情 ...

  2. python爬取豆瓣电影top250并保存为xlsx_python抓取豆瓣电影Top250数据并写入Excel

    douban python抓取豆瓣电影Top250数据并写入Excel 1.将目标网站上的页面抓取下来 2.将抓取下来的数据根据一定的规则进行提取 create table `tb_movie`( i ...

  3. 小菜鸟的Python笔记001:将Word文档中数据汇总到Excel表格

    将Word文档中数据汇总到Excel表格 前言 一.应用场景 二.程序思路及准备工作 思路如下: 准备工作: 三.程序代码 1.主程序 2.获取Word文档列表 3.提取文档内数据 4.导入到Exce ...

  4. Python爬虫示例1:获取豆瓣电影正在热播的电影信息

    个人的第一个python爬虫程序,如果错误,请指正. 程序用于抓取豆瓣电影正在热播的电影信息,详细代码如下所示: #!/usr/bin/python # -*- coding: UTF-8 -*- i ...

  5. python BeautifulSoup爬取豆瓣电影top250信息并写入Excel表格

    豆瓣是一个社区网站,创立于2005年3月6日.该网站以书影音起家,提供关于书籍,电影,音乐等作品信息,其描述和评论都是由用户提供的,是Web2.0网站中具有特色的一个网站. 豆瓣电影top250网址: ...

  6. python 列表写入excel_[python]获取一年日历数据并写入excel表格中

    [Asm] 纯文本查看 复制代码# coding=gbk import requests from bs4 import BeautifulSoup import xlwt # 获取一年数据,以字典返 ...

  7. python爬取豆瓣电影top250并保存为xlsx_python 爬虫获取豆瓣电影排行榜前250并写入excel...

    豆瓣电影排行榜前250 分为10页,第一页的url为https://movie.douban.com/top250,但实际上应该是https://movie.douban.com/top250?sta ...

  8. Python爬虫实战,pyecharts模块,Python实现豆瓣电影TOP250数据可视化

    前言 利用Python实现豆瓣电影TOP250数据可视化.废话不多说. 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: pandas模块 pyecharts模块: 以及一些 ...

  9. python爬取豆瓣电影信息数据

    题外话+ 大家好啊,最近自己在做一个属于自己的博客网站(准备辞职回家养老了,明年再战)在家里 琐事也很多, 加上自己 一回到家就懒了(主要是家里冷啊! 广东十几度,老家几度,躲在被窝瑟瑟发抖,) 由于 ...

最新文章

  1. mysql 修复_修复崩溃的Mysql
  2. spring cloud服务发现注解之@EnableDiscoveryClient与@EnableEurekaClient
  3. NYOJ_1013除法表达式
  4. 深度学习中的激活函数与梯度消失
  5. exchange管理控制台命令行 查看邮箱数据库信息、接收连接器、发送连接器 相关命令
  6. Android 源码编译过程
  7. leetcode - Search in Rotated Sorted Array II
  8. CISA 发布关于 Treck TCP/IP 栈中新漏洞的 ICS 安全公告
  9. 20 Tips to Simplify Your Digital and Online Life
  10. android 入门-android Studio 配置
  11. 回顾2018,展望2019
  12. Python+数据分析+机器学习,数据科学家最少必要知识库!
  13. 用U3D寻找看电视的感觉!!
  14. html代码向下移动,在html表格中向下移动Jquery
  15. vasp544编译安装
  16. 海康linux 密码忘记,linux下调用海康sdk
  17. 清理C盘内存有用的办法
  18. Linux系统下如何复制粘贴文件(待更新)
  19. Micrometer中文文档
  20. oracle diagnosticdest,Oracle 11g自动诊断信息库(Automatic Diagnostic Repository,ADR)概述

热门文章

  1. mysql 启用myisam_mysql存储引擎之myisam学习
  2. UVA804 Petri网模拟 Petri Net Simulation
  3. python生成pyc_如何生成pyc/pyo/pyd文件
  4. Docker 基础篇
  5. Java 基础语法(键盘录入数据,水仙花数,各类循环,random,数组,内存分配,方法,面向对象、封装、this、构造方法、标准类、API)
  6. 前端开发入门到实战:HTML5 video视频播放
  7. 3.搭建Vue开发环境
  8. 候选人选票程序:设计一个候选人选票程序。假设有3个候选人,在屏幕上输入要选择的候选人姓名,有10个人进行投票,最后输出每个人的得票结果。
  9. 网络时代知识产权保护 铃声下载动了谁的奶酪
  10. 【Linux SPI Framework】