【爬虫实战项目一】Python爬取豆瓣电影榜单数据
目录
一、环境准备
二、编写代码
2.1 分页分析
2.2 编码
一、环境准备
安装requests和lxml
pip install requests
pip install lxml
二、编写代码
2.1 分页分析
编写代码前我们先看看榜单的url

我们假如要爬取五页的数据,那么五个url分别是:
https://movie.douban.com/top250?start=0&filter=
https://movie.douban.com/top250?start=25&filter=
https://movie.douban.com/top250?start=50&filter=
https://movie.douban.com/top250?start=75&filter=
https://movie.douban.com/top250?start=100&filter=
不难看出,规律在于start参数,每页有25条数据。
那么按照分页计算公式 (当前页数 - 1) * 每页数据量 得出 代码逻辑。
2.2 编码

我们复制下xpath。
import random
from lxml import etree
import requests
import time# 请求头信息
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
}
# 共取5页数据
for i in range(1, 6):start = (i - 1) * 25url = f'https://movie.douban.com/top250?start={start}&filter='response = requests.get(url, headers=headers)tree = etree.HTML(response.text)div = tree.xpath('//*[@id="content"]/div/div[1]/ol/li/div')for d in div:# 获取当前电影标题title = d.xpath('.//span[@class="title"][1]/text()')[0]print(title)time.sleep(random.randint(1, 3))

成功爬取豆瓣电影TOP250榜单。
相关文章:
【爬虫实战项目一】Python爬取豆瓣电影榜单数据
目录 一、环境准备 二、编写代码 2.1 分页分析 2.2 编码 一、环境准备 安装requests和lxml pip install requests pip install lxml 二、编写代码 2.1 分页分析 编写代码前我们先看看榜单的url 我们假如要爬取五页的数据,那么五个url分别是: htt…...
AI-知识库搭建(一)腾讯云向量数据库使用
一、AI知识库 将已知的问答知识,问题和答案转变成向量存储在向量数据库,在查找答案时,输入问题,将问题向量化,匹配向量库的问题,将向量相似度最高的问题筛选出来,将答案提交。 二、腾讯云向量数…...
AI数据分析:根据Excel表格数据绘制柱形图
工作任务:将Excel文件中2013年至2019年间线上图书的销售额,以条形图的形式呈现,每个条形的高度代表相应年份的销售额,同时在每个条形上方标注具体的销售额数值 在deepseek中输入提示词: 你是一个Python编程专家&#…...
基于协调过滤算法商品推荐系统的设计
管理员账户功能包括:系统首页,个人中心,商品管理,论坛管理,商品资讯管理 前台账户功能包括:系统首页,个人中心,论坛,商品资讯,商家,商品 开发系统…...
CS1061 “HtmlHelper”未包含“Partial”的定义,并且找不到可接受第一个“HtmlHelper”类型参数的可访问扩展方法“Partial”
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 CS1061 “HtmlHelper”未包含“Partial”的定义,并且找不到可接受第一个“HtmlHelper”类型参数的可访问扩展方法“Partial”(是否缺少 using 指令或程序集引用?) 14_Views_Message_E…...
在知识的海洋中航行:问题的演变与智慧的追求
在信息技术迅猛发展的今天,互联网和人工智能已成为我们生活中不可或缺的一部分。它们像是一座座灯塔,照亮了知识的海洋,使得曾经难以触及的知识变得触手可及。随着这些技术的普及,越来越多的问题能够迅速得到答案。然而࿰…...
splice()、slice()、split()三种方法的区别
slice slice() 方法返回一个新的数组对象,这一对象是一个由 start 和 end 决定的原数组的浅拷贝(包括 start,不包括 end),其中 start 和 end 代表了数组元素的索引。原始数组不会被改变。 const animals [ant, bison…...
iOS 之homebrew ruby cocoapods 安装
cocoapods安装需要ruby,更新ruby需要rvm,下载rvm需要gpg,下载gpg需要homebrew,所以安装顺序是homebrew->gpg->rvm->ruby-cocoapods Rvm 官网: RVM: Ruby Version Manager - RVM Ruby Version Manager - Docum…...
【栈】2751. 机器人碰撞
本文涉及知识点 栈 LeetCode2751. 机器人碰撞 现有 n 个机器人,编号从 1 开始,每个机器人包含在路线上的位置、健康度和移动方向。 给你下标从 0 开始的两个整数数组 positions、healths 和一个字符串 directions(directions[i] 为 ‘L’ …...
贪心算法06(leetcode738,968)
参考资料: https://programmercarl.com/0738.%E5%8D%95%E8%B0%83%E9%80%92%E5%A2%9E%E7%9A%84%E6%95%B0%E5%AD%97.html 738. 单调递增的数字 题目描述: 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时,我们称这个整数是单调递增的。…...
cve_2022_0543-redis沙盒漏洞复现 vulfocus
1. 原理 该漏洞的存在是因为Debian/Ubuntu中的Lua库是作为动态库提供的。自动填充了一个package变量,该变量又允许访问任意 Lua 功能。 2.复现 我们可以尝试payload: eval local io_l package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so…...
浅解Reids持久化
Reids持久化 RDB redis的存储方式: rdb文件都是二进制,很小,里面存的是数据 实现方式 redis-cli链接到redis服务端 使用save命令 注:不推荐 因为save命令是直接写到磁盘里面,速度特别慢,一般都是redis…...
Java24:会话管理 过滤器 监听器
一 会话管理 1.cookie 是一种客户端会话技术,cookie由服务端产生,它是服务器存放在浏览器的一小份数据,浏览器 以后每次访问服务器的时候都会将这小份的数据带到服务器去。 //创建cookie对象 Cookie cookie1new Cookie("…...
web前端电影简介标签:深度解析与创意应用
web前端电影简介标签:深度解析与创意应用 在web前端开发中,电影简介标签的设计与实现是一项既具挑战性又充满创意的任务。这些标签不仅需要准确传达电影的核心信息,还要通过精美的设计和交互效果吸引用户的眼球。本文将从四个方面、五个方面…...
Java面向对象-方法的重写、super
Java面向对象-方法的重写、super 一、方法的重写二、super关键字1、super可以省略2、super不可以省略3、super修饰构造器4、继承条件下构造方法的执行过程 一、方法的重写 1、发生在子类和父类中,当子类对父类提供的方法不满意的时候,要对父类的方法进行…...
解锁ChatGPT:从GPT-2实践入手解密ChatGPT
⭐️我叫忆_恒心,一名喜欢书写博客的研究生👨🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三连支…...
20240605解决飞凌的OK3588-C的核心板刷机原厂buildroot不能连接ADB的问题
20240605解决飞凌的OK3588-C的核心板刷机原厂buildroot不能连接ADB的问题 2024/6/5 13:53 rootrootrootroot-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ ./build.sh --help rootrootrootroot-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ ./build.sh lun…...
c++手写的bitset
支持stl bitset 类似的api #include <iostream> #include <vector> #include <climits> #include <utility> #include <stdexcept> #include <iterator>using namespace std;const int W 64;class Bitset { private:vector<unsigned …...
【机器学习系列】深入理解集成学习:从Bagging到Boosting
目录 一、集成方法的一般思想 二、集成方法的基本原理 三、构建集成分类器的方法 常见的有装袋(Bagging)和提升(Boosting)两种方法 方法1 :装袋(Bagging) Bagging原理如下图: …...
快速部署Super Qwen Voice World:复古像素风语音合成中心体验
快速部署Super Qwen Voice World:复古像素风语音合成中心体验 1. 项目简介与核心价值 Super Qwen Voice World是一个基于Qwen3-TTS技术构建的语音合成平台,它将传统的语音合成过程转化为一场充满趣味的8-bit游戏冒险。这个项目最吸引人的特点是&#x…...
MacBook上的Safari安装油猴插件
MacBook Safari 浏览器安装油猴插件(Tampermonkey)完整教程 目录 一、什么是油猴插件二、准备工作三、安装 Tampermonkey 插件四、启用插件五、安装油猴脚本六、脚本管理七、进阶设置八、常见问题解决九、热门脚本推荐十、安全注意事项 一、什么是油猴…...
计算机毕业设计springboot基于的突发事件信息共享系统 基于Spring Boot的应急事件协同处理平台 利用Spring Boot构建的突发状况信息交互系统
计算机毕业设计springboot基于的突发事件信息共享系统 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。在当今社会,各类突发事件频发,从自然灾害到公共卫生…...
辅助用电系统安装:工业项目电力配套的关键环节问题全解析
在工业厂房、园区配套、商业综合体、仓储物流中心以及各类生产型项目中,很多人一提到电气工程,第一反应往往是高压配电、变压器、动力柜或者主供电系统。但真正决定项目是否“好用、稳用、久用”的,往往不是主系统本身,而是隐藏在…...
保姆级教程:造相Z-Image文生图模型v2快速上手,一键生成768高清图
保姆级教程:造相Z-Image文生图模型v2快速上手,一键生成768高清图 1. 为什么选择造相Z-Image模型? 造相Z-Image是阿里通义万相团队开源的高性能文生图扩散模型,拥有20亿级参数规模。相比市面上常见的512512分辨率模型,…...
MediaPipe Pose镜像测评:高精度姿态估计,舞蹈健身场景实测
MediaPipe Pose镜像测评:高精度姿态估计,舞蹈健身场景实测 1. 引言:为什么选择MediaPipe Pose进行姿态估计 在计算机视觉领域,人体姿态估计技术正变得越来越重要。从健身指导到舞蹈教学,从虚拟试衣到安防监控&#x…...
RPA-Python与pytest-xdoctest集成:Xdoctest测试自动化
RPA-Python与pytest-xdoctest集成:Xdoctest测试自动化 【免费下载链接】RPA-Python Python package for doing RPA 项目地址: https://gitcode.com/gh_mirrors/rp/RPA-Python RPA-Python是一款功能强大的Python自动化库,而pytest-xdoctest则是一个…...
一个店铺被TRO,会连累同一主体的其他店铺吗?
SellerAegis卖家守护视角下的跨境账号风险全解析在跨境电商运营中,TRO(Temporary Restraining Order,临时限制令)已经成为卖家最为警惕的法律风险之一。许多卖家在遭遇TRO时,最焦虑的问题往往不是当前店铺被冻结&#…...
电气安全三要素:爬电距离、绝缘电阻与绝缘电压的实战解析
1. 电气安全三要素的核心概念解析 第一次接触电气安全设计时,我被各种专业术语搞得晕头转向。直到有次亲眼目睹同事调试设备时因绝缘失效引发的电弧,才真正理解这些参数不仅是纸面数据,更是保命红线。爬电距离、绝缘电阻和绝缘电压就像电气安…...
让 Claude Code 帮你“看家“:Hooks 与 /loop 入门
让 Claude Code 帮你"看家":Hooks 与 /loop 入门 上周我把一个重构任务扔给 Claude,出门开了两小时会。回来发现它把 .env.production 改了。 那一刻我才意识到,单纯会用 Claude Code 还不够,你还得学会怎么管住它。折…...
