【Python网络爬虫笔记】8- (BeautifulSoup)抓取电影天堂2024年最新电影,并保存所有电影名称和链接
目录
- 一. BeautifulSoup的作用
- 二. 核心方法介绍
- 2.1 构造函数
- 2.2 find()方法
- 2.3 find_all()方法
- 2.4 select()方法
- 三. 网络爬虫中使用BeautifulSoup
- 四、案例爬取结果
一. BeautifulSoup的作用
- 解析HTML/XML文档:它可以将复杂的HTML或XML文本转换为易于操作的树形结构。例如,将一个网页的HTML内容解析后,就可以像在文件系统中遍历文件夹和文件一样,在这个树形结构中查找特定的标签、属性和文本内容。
- 数据提取:能够方便地从解析后的文档中提取所需的数据。比如,从新闻网站中提取文章标题、内容、发布时间,或者从电商网站提取商品名称、价格、评论等信息。
- 清理和转换数据:在一定程度上可以对提取的数据进行清理和转换。例如,去除HTML标签只保留纯文本内容,或者修改标签的属性等。
二. 核心方法介绍
2.1 构造函数
- **语法**:`BeautifulSoup(html_doc, 'parser')`- **作用**:创建一个BeautifulSoup对象,其中`html_doc`是要解析的HTML或XML文档(可以是字符串形式的网页内容),`parser`是解析器类型,常用的有`html.parser`(Python内置解析器)、`lxml`(需要安装`lxml`库,解析速度快且功能强大)和`html5lib`(对HTML5的支持较好)。例如:```pythonfrom bs4 import BeautifulSoupimport requestsurl = "https://www.example.com"response = requests.get(url)soup = BeautifulSoup(response.text, 'html.parser')```
2.2 find()方法
- **语法**:`find(name, attrs, recursive, string, **kwargs)`- **作用**:在解析后的文档树中查找并返回第一个符合条件的标签。- **参数说明**:- `name`:标签名称,如`'div'`、`'a'`等。例如,`soup.find('div')`会返回文档中第一个`<div>`标签。- `attrs`:一个字典,用于指定标签的属性。例如,`soup.find('a', attrs={'class': 'link'})`会返回第一个`class`属性为`link`的`<a>`标签。- `recursive`:一个布尔值,默认为`True`,表示是否在整个文档树中递归查找。如果设为`False`,则只在文档树的直接子元素中查找。- `string`:用于匹配标签中的文本内容。例如,`soup.find('p', string='This is a paragraph')`会返回包含文本`This is a paragraph`的第一个`<p>`标签。
2.3 find_all()方法
- **语法**:`find_all(name, attrs, recursive, string, limit, **kwargs)`- **作用**:返回文档树中所有符合条件的标签列表。- **参数说明**:参数含义与`find`方法类似,多了一个`limit`参数,用于限制返回结果的数量。例如,`soup.find_all('a', limit = 3)`会返回文档中前3个`<a>`标签。
2.4 select()方法
- **语法**:`select(selector)`- **作用**:使用CSS选择器语法在文档树中查找元素。这是一种非常强大的查找方式,能够方便地定位到复杂结构中的元素。例如,`soup.select('div.class a')`会返回所有在`class`属性的父`<div>`标签下的`<a>`标签。
三. 网络爬虫中使用BeautifulSoup
- 案例:抓取电影天堂2024年最新电影,并保存所有电影名称和链接
-
电影网址:https://dytt89.com/
-
需要抓取的内容:

-
功能实现:
-1.安装BeautifulSoup库使用
pip命令安装beautifulsoup4库。在命令行中输入pip install beautifulsoup4-2.导入模块
在Python代码中,需要从bs4包中导入BeautifulSoup类。同时,如果是从网页获取数据,通常还需要导入requests库来发送HTTP请求。
-3.代码实现
-
# 抓取2024年最新电影链接,并保存所有电影信息和链接# 导入requests
import requests# 导入 BeautifulSoup
from bs4 import BeautifulSoup
# 导入re
import re# 头部
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'
}# 获取网页内容
url = 'https://dytt89.com/'res = requests.get(url, headers=headers, verify=False)
# 指定字符集
res.encoding = 'gb2312'# 获取网页内容
html_text = res.text# 创建BeautifulSoup对象
soup = BeautifulSoup(html_text, 'html.parser')# 找到2024新片精品的板块
new_movies_section = soup.find('div', class_='co_area2').find('div', class_='title_all').find('a', href=True, text='2024新片精品')if new_movies_section:movie_list = new_movies_section.find_next('div', class_='co_content222').find_all('li')for movie in movie_list:movie_name = movie.find('a').textmovie_link = url+movie.find('a')['href'].strip("/")print(f"电影名称: {movie_name}")print(f"电影链接: {movie_link}")# 关闭响应
res.close()
四、案例爬取结果
注意:原电影链接如下,此处做了一个拼接。



相关文章:
【Python网络爬虫笔记】8- (BeautifulSoup)抓取电影天堂2024年最新电影,并保存所有电影名称和链接
目录 一. BeautifulSoup的作用二. 核心方法介绍2.1 构造函数2.2 find()方法2.3 find_all()方法2.4 select()方法 三. 网络爬虫中使用BeautifulSoup四、案例爬取结果 一. BeautifulSoup的作用 解析HTML/XML文档:它可以将复杂的HTML或XML文本转换为易于操作的树形结构…...
Rancher V2.7.0安装教程
1、执行Docker命令 docker run -d --privileged --restartunless-stopped -p 80:80 -p 443:443 -v /home/rancher:/var/lib/rancher --name rancher registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.7.0 注:如果容器启动失败,参考我另外一篇文章…...
STM32MX 配置CANFD收发通讯
一、环境 MCU:STM32G0B1CEU6 CAN收发器:JIA1042 二、MX配置 配置SYS 配置canfd并开启中断,我开了两个FDCAN,配置是一样的,这里贴一下波特率的计算公式: 也就是:CAN时钟频率/预分频器/&…...
(12)时间序列预测之MICN(CNN)
文章目录 前言1. challenge 一、网络结构1. MHDecomp2. Trend-cyclical Prediction Block3. Seasonal Prediction BlockMIC LayerMerge 实验结果1.长时预测 总结参考 文章信息 模型: MICN (Multi-scale Isometric Convolution Network)关键词: 长时预测…...
嵌入式蓝桥杯学习3 外部中断实现按键
Cubemx配置 前面的配置依旧一样。 原文链接:https://blog.csdn.net/m0_74246768/article/details/144227188 1.打开cubemx,将PB0到PB1配置为GPIO_EXTI模式。 2.在System-Core中点击GPIO,选择PB0到PB2, GPIO_Mode(触…...
自由学习记录(29)
FileStream FileStream 是 .NET 中用于文件操作的重要类,位于 System.IO 命名空间中。它提供了对文件的同步和异步读写操作。以下是它的方法签名和重载的详细介绍: 构造函数签名和重载 FileStream 提供多个构造函数,允许在创建实例时指定文…...
使用YOLO系列txt目标检测标签的滑窗切割:批量处理图像和标签的实用工具
使用YOLO系列txt目标检测标签的滑窗切割:批量处理图像和标签的实用工具 使用YOLO的TXT目标检测标签的滑窗切割:批量处理图像和标签的实用工具背景1. 代码概述2. 滑窗切割算法原理滑窗切割步骤:示例: 3. **代码实现**1. **加载标签…...
架构10-可观测性
零、文章目录 架构10-可观测性 1、可观测性 (1)可观测性的背景 **历史沿革:**可观测性最初由匈牙利数学家鲁道夫卡尔曼提出,用于线性动态控制系统。后来,该概念被引入到计算机科学中。**现代意义:**在分…...
git管理Unity项目的正确方式
git管理Unity项目的正确打开方式 前言:对于刚开始git进行unity项目管理的时候,我采取的方式是全部文件上传,文件数量太多以及上传太大,我尝试过一下几个方法: 利用git的LFS大文件进行传方式,可行但比较麻…...
openssl使用哈希算法生成随机密钥
文章目录 一、openssl中随机数函数**OpenSSL 随机数函数概览**1. **核心随机数函数** **常用函数详解**1. RAND_bytes2. RAND_priv_bytes3. RAND_seed 和 RAND_add4. RAND_status **随机数生成器的熵池****常见用例****注意事项** 二、使用哈希算法生成随机的密钥 一、openssl中…...
将word里自带公式编辑器编辑的公式转换成用mathtype编辑的格式
文章目录 将word里自带公式编辑器编辑的公式转换成用mathtype编辑的格式MathType安装问题MathType30天试用延期MathPage.wll文件找不到问题 将word里自带公式编辑器编辑的公式转换成用mathtype编辑的格式 word自带公式编辑器编辑的公式格式: MathType编辑的格式&a…...
校园失物招领系统基于 SpringBoot:点亮校园归还遗失物之光
2系统开发环境 2.1vue技术 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架。 [5] 与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第…...
dhcpd服务器的配置与管理(超详细!!!)
前提条件: (1)虚拟机能够联网(如果nat模式不能联网的看另一期) CentOS7 NAT模式不能联网-CSDN博客 (2)系统是Centos8,因为下载的dhcp-server软件包版本和Centos7不匹配,如果你能成…...
Qml之基本控件
一.Qml常用控件 1.Text(显示普通文本和富文本) 1.1显示普通文本: Window { visible: true width: 320 height: 240 title: qsTr("Hello World") Text { text: "Hello World!" font.family: "Helvetica" font.pointSize: 24 color:…...
【Java从入门到放弃 之 Stream API】
Java Stream API Stream API行为参数化传递代码Lambda表达式Lambda 表达式的语法方法引用 Lambda 表达式的实际应用集合操作并发编程 Lambda 表达式的注意事项总结 Stream API Java8提供了一个全新的API - Stream。引入这个Stream的主要目的,一个是可以支持更好的并…...
Ruby On Rails 笔记1——Rails 入门
突然想跟着官方文档把Ruby On Rails过一遍,把一些有用的记下来就可以一直看了,do它! https://guides.rubyonrails.org/v7.2/ 注:官网是英文文档,我自己翻译了一下,不确保完全准确,只供自己学习开发使用。 …...
高效开发 Python Web 应用:FastAPI 数据验证与响应体设计
高效开发 Python Web 应用:FastAPI 数据验证与响应体设计 目录 🧑💻 FastAPI 的数据验证系统与 Pydantic 模型📦 响应体与模型:定义响应数据的最佳实践🔄 响应模型与查询参数的结合:增强灵活…...
基于“开源 2+1 链动 O2O 商城小程序”的门店拉新策略与流程设计
摘要:在数字化商业浪潮席卷之下,实体门店面临着激烈的市场竞争,如何高效拉新成为关乎门店生存与发展的关键问题。本文聚焦于“开源 21 链动 O2O 商城小程序”,深入探讨结合多种手段的门店拉新策略及详细流程设计。通过剖析到店扫码…...
33.5 remote实战项目之设计prometheus数据源的结构
本节重点介绍 : 项目要求 通过remote read读取prometheus中的数据通过remote write向prometheus中写入数据 准备工作 新建项目 prome_remote_read_write设计prometheus 数据源的结构初始化 项目要求 通过remote read读取prometheus中的数据通过remote write向prometheus中写…...
微服务springboot详细解析(一)
目录 1.Spring概述 2.什么是SpringBoot? 3.第一个SpringBoot程序 4.配置参数优先级 5.springboot自动装配原理 6.SpringBootApplication&SpringApplication.run 7.ConfigurationProperties(prefix "") 8.Validated数据校验 29、聊聊该如何写一…...
零下20度实测:国产SysMax PCAN FD在寒区标定中的稳定性与兼容性全记录
零下20度极限挑战:SysMax PCAN FD在寒区汽车电子标定中的实战全解析 当清晨的内蒙古满洲里气温骤降至-20℃,大多数电子设备早已进入"冬眠"状态,而我们的汽车电子标定工作却必须继续。在这个被称为"中国冷极"的地区&#…...
BallonsTranslator:深度学习驱动的漫画翻译自动化工具
BallonsTranslator:深度学习驱动的漫画翻译自动化工具 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning 项目地址: https:…...
不只是CTF:用Kali+Pwntools+GDB-Peda搭建你的第一个漏洞分析实验台
从CTF到实战:构建专业级二进制漏洞分析实验环境 在安全研究领域,CTF比赛中的Pwn挑战只是冰山一角。真正的价值在于将这些技能应用于现实世界的漏洞分析和利用。本文将带你搭建一个专业级的本地漏洞分析实验环境,这个环境不仅能应对CTF题目&a…...
提升vue开发效率的秘诀,快马平台一键生成通用组件库
最近在重构公司的中后台管理系统时,发现很多重复性的工作占用了大量开发时间。经过实践总结,我发现通过合理封装通用组件和工具集,可以显著提升Vue3项目的开发效率。今天就来分享下我的实战经验。 通用表格组件的封装 这个组件基于Element Pl…...
Win11终极IPX协议兼容方案:IPXWrapper完整配置与优化指南
Win11终极IPX协议兼容方案:IPXWrapper完整配置与优化指南 【免费下载链接】ipxwrapper 项目地址: https://gitcode.com/gh_mirrors/ip/ipxwrapper 在现代Windows 11系统上重温《星际争霸》、《魔兽争霸》、《暗黑破坏神2》等经典游戏时,你是否遇…...
你的QQ空间记忆正在消失?GetQzonehistory帮你永久保存青春时光
你的QQ空间记忆正在消失?GetQzonehistory帮你永久保存青春时光 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾担心QQ空间里的珍贵回忆会随着时间流逝而消失&#x…...
别再死记硬背了!用这个动画+仿真,5分钟搞懂CMOS反相器到底怎么‘反’的
别再死记硬背了!用动画仿真5分钟搞懂CMOS反相器的翻转奥秘 第一次翻开数字电路教材时,那个由PMOS和NMOS组成的对称结构总让我困惑——为什么PMOS必须在上方?为什么输入高电平反而输出低电平?直到我在实验室里用仿真软件亲眼看到电…...
【飞机】倾转旋翼飞机齿轮箱建模与Matlab仿真(含非线性阻尼和立方摩擦效应)
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...
AI赋能浏览器:通过快马平台生成智能扩展,实现网页内容自动总结与代码智能解释
最近在做一个很有意思的尝试:用AI给浏览器装上"智能大脑"。具体来说,是开发一个谷歌浏览器扩展,能够智能分析网页内容。这个扩展最酷的地方在于,它能自动识别你选中的是普通文本还是代码,然后分别给出摘要总…...
告别手动配置!用Simulink 2021b生成ARXML,一键导入ISOLAR-A V9.2.1自动生成RTE
从Simulink到ISOLAR-A:ARXML自动化配置RTE的工程实践 在AUTOSAR开发流程中,模型设计与工具链集成往往存在效率瓶颈。传统"自下而上"开发模式下,工程师需要反复在Simulink和ISOLAR-A/B之间切换,手动维护接口定义、端口连…...
