(学习笔记)Python BeautifulSoup4 搜索部分
来源:互联网 发布:mac任何来源不见了 编辑:程序博客网 时间:2024/06/06 04:50
BeautifulSoup
bs4主要使用find()方法和find_all()方法来搜索文档。
find()用来搜索单一数据,find_all()用来搜索多个数据
find_all()与find()
name –> tag名
string –> 内容
recursive –>是否搜索所有子孙节点 默认为true 设为false只搜索子节点
两方法用法相似这里以find_all()为例。
#搜索tag名 <title></title>soup.find_all("title")#关于属性#搜索id为"link2"的标签soup.find_all(id='link2')#这里属性的值可以使用字符串,正则表达式 ,列表,Truesoup.find_all(id=re.compile("elsie"))#可以指定多个条件soup.find_all(href=re.compile("elsie"), id='link1')#对于有些不能指定的标签(data-foo)soup.find_all(attrs={"data-foo": "value"})#对于class -->class为python保留字使用class_soup.find_all(class_="top")#属性结束#关于string(内容)#基础 内容为'Elsie'的soup.find_all(string="Elsie")#内容在数组中的soup.find_all(string=["Tillie", "Elsie", "Lacie"])#内容匹配正则表达式的soup.find_all(string=re.compile("Dormouse"))#匹配函数soup.find_all(string=is_the_only_string_within_a_tag)#内容结束#搜索限制#限制搜索数量为2soup.find_all("a", limit=2)#只搜索直接子节点soup.html.find_all("a", recursive=False)#搜索限制结束
简写
soup.find_all("a")#等价于soup("a")
soup.title.find_all(string=True)#等价于soup.title(string=True)
CSS选择器
Beautiful Soup支持大部分的CSS选择器
#搜索tag为titlesoup.select("title")#通过tag标签逐层查找soup.select("html head title")#寻找直接子标签soup.select("head > title")soup.select("p > #link1")#选择所有紧接着id为link1元素之后的class为sister的元素soup.select("#link1 + .sister")#选择p元素之后的每一个ul元素soup.select("p + ul")#同时用多种CSS选择器查询元素soup.select("#link1,#link2")#通过查询元素属性soup.select('a[href="http://example.com/elsie"]')# [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>]soup.select('a[href^="http://example.com/"]')# [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>,# <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>,# <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]soup.select('a[href$="tillie"]')# [<a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]soup.select('a[href*=".com/el"]')# [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>]#通过查询元素属性结束#通过语言查找soup.select('p[lang|=en]')#查找第一个元素soup.select_one(".sister")
find_其他
find_parents() 和 find_parent()
搜索当前节点的父节点
#查找一个标签aa = soup("a", id="link1")#查找a的父节点中的P标签a_string.find_parent("p")
find_next_siblings() 和 find_next_sibling()
搜索当前节点后边解析的兄弟节点
(可以理解为搜索当前标签下边的同级节点)
find_previous_siblings() 和 find_previous_sibling()
搜索当前节点前边解析的兄弟节点
(可以理解为搜索当前标签上边的同级节点)
find_all_next() 和 find_next()
对当前节点之后的节点进行迭代
find_all_previous() 和 find_previous()
对当前节点之前的节点进行迭代
0 0
- (学习笔记)Python BeautifulSoup4 搜索部分
- Python BeautifulSoup4 搜索部分
- (学习笔记)Python BeautifulSoup4 取值部分
- Beautifulsoup4学习笔记
- Python BeautifulSoup4
- 【Python学习】Mac+Eclipse 安装BeautifulSoup4
- python爬虫——beautifulsoup4使用学习
- Python BeautifulSoup4 使用指南
- Python:安装BeautifulSoup4模块
- python#WS002 beautifulsoup4
- Python BeautifulSoup4的使用方法
- beautifulsoup4函数使用学习
- python简单爬虫,Beautifulsoup4解析,爬取直播吧部分热门新闻及链接
- Python学习笔记---基础汇总部分
- Python学习笔记(2)—搜索路径
- android深度搜索学习笔记四(硬件抽像hal第一部分)
- python爬虫 BeautifulSoup4官方文档
- BeautifulSoup4
- Android之Handler原理回顾和剖析
- javascript中Bom和Dom有什么区别?
- **MATLAB** MATLAB中的绘图功能
- 浅谈Slick(3)- Slick201:从fp角度了解Slick
- **MATLAB** MATLAB二维底层绘图的修饰
- (学习笔记)Python BeautifulSoup4 搜索部分
- Poj 3061 Subsequence【尺取法】
- **MATLAB** Notebook使用简介
- 项目开发经验-明细表【整理】
- **MATLAB** MATLAB的符号运算
- 每周一书-《程序开发心理学(银年纪念版)》获奖公布
- Help Me with the Game
- hrbust2186找规律递归
- 使用Python接入银联支付和支付宝支付的实现