BeautifulSoup4在爬虫中的使用

server/2024/10/25 14:32:44/

简称bs4,是一个工具箱,通过解析文档为用户提供需要抓取的数据

bs4是Python的一个库,最主要的功能是从网页中获取数据

一、bs4支持的解析器

1、Python标准库

2、lxml HTML解析器  lxml匹配结构规则

3、html5lib

二、提取数据

1、根据标签名提取

2、根据属性提取

3、使用css选择器

4、遍历文档树

三、常用方法

  1. find_all():查找所有符合条件的元素,并将匹配的结果封装为一个列表。该方法接收标签名和属性集合作为参数,支持正则表达式和列表等高级用法。
  2. find():查找第一个符合条件的元素。与find_all()类似,但只返回第一个匹配项。
  3. select():使用CSS选择器查找元素,并将匹配的结果封装为一个列表。这使得开发人员可以使用熟悉的CSS选择器语法来定位元素。
  4. string和text:用于获取标签内部的文本内容。如果标签包含多个子元素,则string可能返回None,而text会返回所有子元素的文本内容。

四、优势

  1. 灵活易用:bs4提供了简单而直观的API,使得解析、搜索和遍历文档树变得非常容易。
  2. 良好的容错能力:bs4能够处理包含错误或不完整的HTML文档,并根据上下文推断出正确的结构。
  3. 强大的选择器:支持多种选择器,使得开发人员可以灵活地定位和提取所需的信息。

五、bs4在爬虫中的应用

        在爬虫开发中,bs4常被用于解析网页内容并提取所需的数据。通过发送HTTP请求获取网页的HTML内容后,可以使用bs4来解析这些内容,并提取出如标题、链接、图片等关键信息。此外,bs4还可以与其他Python库(如requests、selenium等)结合使用,以实现更复杂的爬虫功能。


http://www.ppmy.cn/server/122318.html

相关文章

力扣 中等 445.两数相加 II

文章目录 题目介绍题解 题目介绍 题解 首先反转两个链表,再调用 2. 两数相加 链接的代码,得到链表,最后将其翻转即可。 class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {l1 reverseList(l1);l2 reverseList(l…

【国家博物馆应对黄牛办法解析】

一 国家博物馆预约流程及独家预约问题 微信公众号的预约引导页,有微信小程序和PC端预约两种方式: PC端预约和微信小程序明明是两中方式,现在却变成一种了, 为何不能在支付宝小程序预约? 独家的背后往往有故事&#x…

村田发布全球最小016008尺寸MLCC电容

全球积层陶瓷电容(MLCC)领域的领航者——村田制作所(Murata Mfg),再次以科技创新的璀璨光芒照亮了电子元器件的微小世界,震撼发布了其全球范围内前所未有的“016008”尺寸MLCC产品。这款产品的问世&#xf…

FOC代码详解介绍(转载)

1、SimpleFOC(八)—— 理论实践 深度分析SVPWM_svpwm的原理及法则推导和控制算法详解-CSDN博客 2、SVPWM算法原理及详解-CSDN博客 3、FOC和SVPWM的C语言代码实现_svpwm代码-CSDN博客 4、[FOC-Stm32]设置PWM占空比(比较值)的几种方…

【PG备份恢复】基于时间点的恢复(踩坑指南)

目录 1 设置基于时间点恢复所需的配置 1.1 修改配置文件 postgresql.conf 1.2 生效配置 2 进行一次全备 3 模拟增量数据插入 4 查看当前时间点,LSN号,XID 事务ID,当前的WAL 文件等 5 进行一次WAL 日志的切换 6 模拟故障发生 7 进行…

18-pg内核之日志管理器(六)checkpoint

概念 数据库中除了实际存储的数据之外,还存在许多事务相关的日志,如WAL日志,CLOG日志。MultiXact日志等,每次包含DML操作的事务都会产生这些日志,随着时间的推移,如果不进行清理,日志会一直增大…

react crash course 2024(7) react router dom

安装 npm i react-router-dom 引入 import {Route,createBrowserRouter,createRoutesFromElements,RouterProvider} from react-router-dom 在app.jsx const router createBrowserRouter(createRoutesFromElements(<Route index element {<h1>My App</h1>…

springboot3通过HttpRequest请求soap

http://10.20.0.11:80/wms/index.php/Home/SOAP/getVehStatus为请求地址 其中所有的getOfflineAmount字段都是调用的方法名 public static String getOfflineAmount() {String result2 HttpRequest.post("http://10.20.0.11:80/wms/index.php/Home/SOAP/getVehStatus&quo…