Python-爬虫利器-BeautifulSoup4常用API
- 手机
- 2025-08-31 21:06:02

文章目录 前言BeautifulSoup4 简介主要特点:安装方式: 常用 API1. 创建 BeautifulSoup 对象2. 查找标签find(): 返回匹配的第一个元素find_all(): 返回所有匹配的元素列表select_one() & select(): CSS 选择器 3. 访问标签内容text 属性: 获取标签内纯文本get_text(): 同样作用于获取文本attrs 属性: 获取标签的所有属性[attribute]: 直接访问某个属性值 4. 修改文档添加新标签删除标签替换标签 5. 导航树结构parent: 上级父节点children: 下级子节点迭代器siblings: 并列兄弟节点 实战小技巧(关键点)F12打开控制台复制对应图片的css选择器直接代码中使用 结束语 前言
在时光的长河里,每一滴水都是昨日的星辰,映照着永不重复的今天。
BeautifulSoup4 简介BeautifulSoup4(通常简称为 BS4)是一个用于解析 HTML 和 XML 文档的 Python 库。它的设计目的是简化从复杂网页中提取数据的过程。BeautifulSoup4 可以处理各种各样的标记语言,并提供了一个简单的接口来进行文档导航、搜索和修改。
主要特点: 跨平台支持: Beautiful Soup 支持 Windows、Linux、Mac OS X 等多个操作系统。兼容性强: 支持多种解析器,包括 Python 内置的标准库解析器 (html.parser)、第三方解析器 lxml 和 html5lib。易于学习: 提供了简单且直观的 API,适合初学者使用。强大功能: 包含丰富的函数和方法,可以帮助开发者高效地完成任务。 安装方式:你可以通过 pip 工具轻松安装 BeautifulSoup4:
pip install beautifulsoup4 常用 API以下是 BeautifulSoup4 中一些常用的 API 方法和功能:
1. 创建 BeautifulSoup 对象首先,你需要创建一个 BeautifulSoup 对象来解析 HTML 或 XML 文档。
from bs4 import BeautifulSoup # 使用默认的 html.parser 解析器 html_doc = "<html><head><title>Example Page</title></head><body id='id'><a href='123'></a><p class='my-class child-class'><i>444</i><h1>Hello World</h1></p></body></html>" soup = BeautifulSoup(html_doc, 'html.parser') # 打印解析后的结果 print(soup.prettify()) 2. 查找标签可以通过标签名称或其他属性来查找特定的元素。
find(): 返回匹配的第一个元素 first_paragraph = soup.find('p') print(first_paragraph) # 输出: <p>Hello World</p> find_all(): 返回所有匹配的元素列表 all_headings = soup.find_all(['h1', 'h2']) for heading in all_headings: print(heading.text) select_one() & select(): CSS 选择器 css_selector_example = soup.select_one('.my-class') print(css_selector_example) css_selectors_examples = soup.select('#id > .child-class') for element in css_selectors_examples: print(element.text) 3. 访问标签内容访问标签内的文本和其他属性。
text 属性: 获取标签内纯文本 text_content = first_paragraph.text print(text_content) # 输出: Hello World get_text(): 同样作用于获取文本 get_text_content = first_paragraph.get_text() print(get_text_content) # 输出: Hello World attrs 属性: 获取标签的所有属性 attributes = first_paragraph.attrs print(attributes) # 如果没有其他属性,则为空字典 {} [attribute]: 直接访问某个属性值 link_tag = soup.a href_value = link_tag['href'] print(href_value) 4. 修改文档除了查询外,还可以动态地添加、删除或修改文档中的节点。
添加新标签 new_tag = soup.new_tag("b") new_tag.string = "Bold Text" first_paragraph.append(new_tag) print(first_paragraph) # 输出: <p>Hello World<b>Bold Text</b></p> 删除标签 tag_to_remove = soup.b tag_to_remove.decompose() print(first_paragraph) # 输出: <p>Hello World</p> 替换标签 replacement_tag = soup.new_tag("i") replacement_tag.string = "Italic Text" first_paragraph.i.replace_with(replacement_tag) print(first_paragraph) # 输出: <p>Hello World<i>Italic Text</i></p> 5. 导航树结构BeautifulSoup 还提供了多种方法来遍历和操作 DOM 树。
parent: 上级父节点 parent_node = first_paragraph.parent print(parent_node.name) # 输出: body children: 下级子节点迭代器 children_nodes = list(first_paragraph.children) for child in children_nodes: print(child) siblings: 并列兄弟节点 next_sibling = first_paragraph.next_sibling previous_sibling = first_paragraph.previous_sibling print(next_sibling) print(previous_sibling) 实战小技巧(关键点)实际情况下,很多节点不好找到,可以利用浏览器功能,可以直接复制css选择器
F12打开控制台 复制对应图片的css选择器 直接代码中使用 from bs4 import BeautifulSoup # 使用默认的 html.parser 解析器 html_doc = "<html></html>" soup = BeautifulSoup(html_doc, 'html.parser') # 只是为了示例 不可运行 以下是复制出来的内容 soup.select('#ice-container > div.tbpc-layout > div.screen-outer.clearfix > div.main > div.core.J_Core > div > div:nth-child(1) > div:nth-child(1) > div > div > div > div > div:nth-child(3) > div > div > a') 结束语文章中API都验证过,可直接运行👽👽👽 运行有问题可联系作者评论交流🤭🤭🤭 风是自由的,你也是自由🤠🤠🤠 欢迎一起交流学习☠️☠️☠️ 有帮助请留下足迹 一键三连🥰🥰🥰 爬虫大佬勿喷,欢迎指正问题😈😈😈 后面会做一系列的爬虫文章,请持续关注作者🤡🤡🤡。
Python-爬虫利器-BeautifulSoup4常用API由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Python-爬虫利器-BeautifulSoup4常用API”