(2024)豆瓣电影TOP250爬虫详细讲解和代码

(2024)豆瓣电影TOP250爬虫详细讲解和代码

爬虫目的

获取 https://movie.douban.com/top250 电影列表的所有电影的属性。并存储起来。说起来很简单就两步。

  • 第一步爬取数据
  • 第二步存储

爬虫思路

总体流程图

由于是分页的,要先观察分页的规律,如下很容易知道每一页的规律。

  • 第一页:https://movie.douban.com/top250?start=0&filter=
  • 第二页:https://movie.douban.com/top250?start=25&filter=

代码思路

  • 函数 getAllPageUrl :生成分页链接列表
  • 函数 getMoiveListByUrl :根据某一页的分页链接,输出电影属性

函数:getAllPageUrl

def getAllPageUrl():"""通过观察规律,生成所有分页的链接list:return:"""list = []for i in range(10):url = f'https://movie.douban.com/top250?start={i*25}&filter='list.append(url)# print(url)return list

测试代码

if __name__ == "__main__":urlList = getAllPageUrl()pprint(len(urlList))pprint(urlList)

输出结果

可以一一校验链接是否有效,准确

image-20240620095315256

函数:getMoiveListByUrl

分析dom

image-20240620105142511

image-20240620105310568

//juery获取一部电影的dom
$("#content .grid_view .item")[0]

OK,经过分析,我们找到了,使用jquery 获取电影dom的方式,只需要经过两步就能拿到电影列表了。

  • 第一步:获取电影列表dom :$("#content .grid_view .item")
  • 第二步:处理单个电影dom,拿到信息。

代码

def getMoiveListByUrl(url):"""由一个分页链接开始,通dom节点的形式 + 数据处理(正则处理、字符处理、类型转换等), 获取电影信息:return: list: 包含每部电影详细信息的字典组成的列表。"""# 定义请求头headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',# 其他需要的请求头...}movieList = []# 发送 GET 请求并获取响应内容response = requests.get(url, headers=headers)if response.status_code == 200:#todo pyquery 解析dom,经过循环,数据处理(正则处理、字符处理、类型转换等),得到正确的电影属性信息doc = pq(response.text)movie_list_doc = doc("#content .grid_view .item")for item in movie_list_doc.items():item_dict = {} #存储单个电影对象的字典cover = item('.pic img').attr('src')movie_url = item('.pic a').attr('href')title = item('.info .hd .title:first').text()review_count_text = item('.info .bd .star span:contains("人评价")').text()rating_num = item('.info .bd .star .rating_num').text()review_count = int(review_count_text.replace("人评价", ""))item_dict['title'] = titleitem_dict['cover'] = coveritem_dict['review_count'] = review_countitem_dict['rating_num'] = rating_numitem_dict['movie_url'] = movie_url# print(title)movieList.append(item_dict)return movieListelse :return movieList

测试代码

if __name__ == "__main__":pageUrl02 = 'https://movie.douban.com/top250?start=25&filter='movieList = getMoiveListByUrl(pageUrl02)pprint(movieList)

输出结果

可以一一校验链接是否有效,准确

image-20240620112728080

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/856175.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣1901.寻找峰值II

力扣1901.寻找峰值II 二分每一行 并用函数找出每一行中最大值的下标若最大值比其下面相邻的元素大 则上方一定存在峰值若最大值比其下面相邻的元素小 则下方一定存在峰值 class Solution {int indexmax(vector<int> &a){return max_element(a.begin(),a.end()) - …

【计算机网络仿真】b站湖科大教书匠思科Packet Tracer——实验一 Packet Tracer的简单使用和访问Web服务器

一、实验目的 1.掌握Packet Tracer的简单使用方式&#xff1b; 2.加深对网络体系结构的理解。 二、实验要求 1.搭建Cisco Packet Tracer仿真平台使用环境&#xff1b; 2.观看B站湖科大教书匠仿真实验视频&#xff0c;完成对应实验。 三、实验内容 第一部分:Packet Tracer的…

最实战的GLM4微调入门:从文本分类开始

GLM4是清华智谱团队最近开源的大语言模型。 以GLM4作为基座大模型&#xff0c;通过指令微调的方式做高精度文本分类&#xff0c;是学习LLM微调的入门任务。 使用的9B模型&#xff0c;显存要求相对较高&#xff0c;需要40GB左右。 在本文中&#xff0c;我们会使用 GLM4-9b-Chat…

全志 Android 11:实现响应全局按键

一、篇头 最近实现热键想功能&#xff0c;简单总结了下全志平台Android 11 的响应全局热键的方法。 二、需求 实现全局热键&#xff0c;响应F-、AF、F三个按键&#xff0c;AF只用于启动调焦界面&#xff0c;F-和F除了可以启动调焦界面外&#xff0c;还用于调整镜头的焦距&…

Go web框架|Beego、Gin、Echo、Iris等干货教程

Go 是一门正在快速增长的编程语言&#xff0c;专为构建简单、快速且可靠的软件而设计。golang提供的net/http库已经很好了&#xff0c;对于http的协议的实现非常好&#xff0c;基于此再造框架&#xff0c;也不会是难事&#xff0c;因此生态中出现了很多框架。 本篇文章主要介绍…

使用node把任意网站封装为可执行文件

直接上步骤&#xff1a; 1. node.js 环境准备 下载地址 那个版本都行&#xff0c;下一步->下一步 安装即可 2. windows 系统下&#xff0c; 快捷键 winr ->输入 cmd -> 回车 3. 执行第一个命令&#xff0c;安装 nativefier 等一段时间 npm install nativefier -g 4…

全面赋能,永久免费!讯飞星火API能力正式免费开放

2023年5月&#xff0c;讯飞星火正式发布&#xff0c;迅速成为千万用户获取知识、学习知识的“超级助手”&#xff0c;成为解放生产力、释放想象力的“超级杠杆”。 2024年5月&#xff0c;讯飞星火API能力正式免费开放&#xff0c;携手生态开发者加快大模型赋能刚需场景。 领…

【考研408计算机组成原理】存储系统之Cache考点

苏泽 “弃工从研”的路上很孤独&#xff0c;于是我记下了些许笔记相伴&#xff0c;希望能够帮助到大家 另外&#xff0c;利用了工作之余的一点点时间&#xff0c;整理了一套考研408的知识图谱&#xff0c; 我根据这一套知识图谱打造了这样一个408知识图谱问答系统 里面的每一…

【C++题解】1324 - 扩建鱼塘问题

问题&#xff1a;1324 - 扩建鱼塘问题 类型&#xff1a;分支问题 题目描述&#xff1a; 有一个尺寸为 mn 的矩形鱼塘&#xff0c;请问如果要把该鱼塘扩建为正方形&#xff0c;那么它的面积至少增加了多少平方米&#xff1f; 输入&#xff1a; 两个整数 m 和 n 。 输出&…

LeetCode 54.螺旋矩阵

1.题目要求如图所示: 各位看官们&#xff0c;大家好呀&#xff0c;今天小编用的方法比较麻烦&#xff0c;就是按顺时针遍历&#xff0c;但也挺好理解的&#xff0c;因为就是迭代法循环&#xff0c;所以就不给大家讲步骤了&#xff0c;直接就发代码了: /*** Note: The returne…

深入浅出Netty:高性能网络应用框架的原理与实践

深入浅出Netty&#xff1a;高性能网络应用框架的原理与实践 1. Netty简介 Netty是一个基于Java的异步事件驱动的网络应用框架&#xff0c;广泛用于构建高性能、高可扩展性的网络服务器和客户端。它提供对多种协议&#xff08;如TCP、UDP、SSL等&#xff09;的支持&#xff0c;…

【计算机网络篇】数据链路层(11)在数据链路层扩展以太网

文章目录 &#x1f354;使用网桥在数据链路层扩展以太网&#x1f95a;网桥的主要结构和基本工作原理&#x1f388;网桥的主要结构&#x1f50e;网桥转发帧的例子&#x1f50e;网桥丢弃帧的例子&#x1f50e;网桥转发广播帧的例子 &#x1f95a;透明网桥&#x1f50e;透明网桥的…

网络基础篇:网络模型

目录 一、初识网络 二、网络的分层 OSI七层模型 TCP/IP四层模型 网络与系统的关系 网络传输基本流程 数据包封装和分用 三、IP地址与MAC地址 认识IP地址 认识MAC地址 IP与MAC的关系 一、初识网络 同一台设备上的进程间通信有很多种方式 &#xff1a; 管道&#xff08…

需求虽小但是问题很多,浅谈JavaScript导出excel文件

最近我在进行一些前端小开发&#xff0c;遇到了一个小需求&#xff1a;我想要将数据导出到 Excel 文件&#xff0c;并希望能够封装成一个函数来实现。这个函数需要接收一个二维数组作为参数&#xff0c;数组的第一行是表头。在导出的过程中&#xff0c;要能够确保避免出现中文乱…

二叉树(数据结构篇)

数据结构之二叉树 二叉树 概念&#xff1a; 二叉树(binary tree)是一颗每个节点都不能多于两个子节点的树&#xff0c;左边的子树称为左子树&#xff0c;右边的子树称为右子树 性质&#xff1a; 二叉树实际上是图&#xff0c;二叉树相对于树更常用。 平衡二叉树的深度要比…

正版 navicat 下载

1. 打开浏览器访问 navicat 官网 Navicat | 下载 Navicat Premium 14 天免费 Windows、macOS 和 Linux 的试用版 windows 用户选择这三项其中一个就可以 2. 下载 点击之后等个几秒钟就会开始下载了 3. 双击打开 下载好的 .exe 程序 进入安装程序 (不影响之前已经安装过的) 可…

客户ITSS案例 — 江苏中友讯华信息科技有限公司

● 2019年12月17日至12月20日&#xff0c;中国电子工业标准化技术协会信息技术服务分会&#xff08;以下称ITSS分会&#xff09;组织召开了运行维护服务能力成熟度符合性评估专家评审会。在江苏新世纪信息科技有限公司的咨询辅导下&#xff0c;江苏中友讯华信息科技有限公司顺利…

猫头虎分享已解决Bug || **Mismatched Types**: `mismatched types`

&#x1f42f; 猫头虎分享已解决Bug || Mismatched Types: mismatched types &#x1f42f; 关于猫头虎 大家好&#xff0c;我是猫头虎&#xff0c;别名猫头虎博主&#xff0c;擅长的技术领域包括云原生、前端、后端、运维和AI。我的博客主要分享技术教程、bug解决思路、开发…

ECharts 雷达图案例001-自定义节点动画

ECharts 雷达图案例001-自定义节点动画 引言 在数据可视化的领域中&#xff0c;ECharts 提供了一种强大的工具来展示多维数据。本文将介绍如何使用 ECharts 创建一个自定义节点样式的雷达图&#xff0c;让数据展示更加生动和个性化。 效果预览 通过自定义节点样式&#xff…

AI早班车2024.6.19

全球AI新闻速递 1.广东 / 山东警方破获两起“AI 换脸伪造不雅照”案。 2.腾讯混元、港科大、清华推出表情包框架&#xff1a;Follow Your Emoji。 3.抖音联合博纳影业推出首部 AIGC 科幻短剧集《三星堆&#xff1a;未来启示录》。 4.亚马逊&#xff1a;宣布向全球创企提供 …