03.BeautifulSoup使用
来源:互联网 发布:游戏编程精粹9 pdf 编辑:程序博客网 时间:2024/05/17 05:04
BeautifulSoup使用
简介
BeautifulSoup是一种解析html,xml等文档的解析修改等操作的工具。
安装
pip install beautifulsoup4
初始化BeautifulSoup库
BeautifulSoup(markup,parser)
markup是html或者xml标记的文档
parser是解析器,支持html.parser(python自带解析器),lxml(需要额外韩妆),html5lib(额外安装)
BeautifulSoup(markup, “html.parser”)
BeautifulSoup(markup, “lxml”)
BeautifulSoup(markup, “html5lib”)
import requests #导入requests库获取网站页面代码from bs4 import BeautifulSoup#导入BeautifulSoup库,注意导入要用bs4doc = requests.get('https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html')#获取bs4库的html代码soup = BeautifulSoup(doc.text,'html.parser')#初始化bs4对象,第一个参数是html文档内容,第二个参数是使用的解析器
获取标签及属性
#-------------获取文档首个标签-----------------------soup.a#获取第一个a标签'''<a accesskey="I" href="genindex.html" title="General Index">index</a>'''#------------获取文档全部该类型标签---------------------soup.find_all('a')#获取所有的a标签soup.find_all('a',href='#id25')#获取所有href=‘#id25’的a标签#------------获取单个父元素-------------------soup.a.parent#获取该标签的父元素'''<li class="right" style="margin-right: 10px"><a accesskey="I" href="genindex.html" title="General Index">index</a></li>'''#------------获取全部父元素------------------soup.a.parents#获取该标签所有父元素,返回的事生成器,需要迭代遍历'''<generator object parents at 0x7ff1cac1cfc0>'''#-----------获取自己的孩子------------------soup.ul.children#获取该节点直接孩子,返回迭代器'''<list_iterator object at 0x7ff1caafa908>'''soup.ul.contents#获取直接孩子,返回list#-----------获取所有子孙------------------soup.ul.descendants#获取所有子孙节点,返回生成器'''<generator object descendants at 0x7ff1cac1cfc0>'''#-----------获取兄弟节点------------------#html文档是一个树形结构,所以兄弟也有前后#获取下一个兄弟soup.a.next_sibling#获取前一个兄弟soup.a.previous_sibling#-----------获取内容------------------#如果标签只有一个NavigableString 类型子节点可以使用string获取内容soup.title.string'''Beautiful Soup 4.2.0 文档 — Beautiful Soup 4.2.0 documentation'''
soup.a.attrs#获取第一个a标签所有属性和值,返回字典形式'''{'accesskey': ['I'], 'href': 'genindex.html', 'title': 'General Index'}'''
find_all( name , attrs , recursive , text , **kwargs )
- find_all() 方法搜索当前tag的所有tag子节点,并判断是否符合过滤器的条件.
- name 参数可以查找所有名字为 name 的tag,字符串对象会被自动忽略掉,搜索 name 参数的值可以使任一类型的 过滤器 ,字符窜,正则表达式,列表,方法或是 True,如果为True就是返回所有tag。
- 如果一个指定名字的参数不是搜索内置的参数名,搜索时会把该参数当作指定名字tag的属性来搜索,如果包含一个名字为 id 的参数,Beautiful Soup会搜索每个tag的”id”属性.
- 可以使用 limit 参数限制返回结果的数量.
- 如果只想搜索tag的直接子节点,可以使用参数 recursive=False
- 注意:如果是tag的class属性需要使用
class_
因为class是Python的关键字,所以需要使用class_来代替或者soup.find_all("a", attrs={"class": "sister"})
,class可以使用多个值class_=’a b’属性a b顺序和匹配一直,否则不能匹配。
#查找多个标签soup.find(['a','ul'])#返回所有a和ul标签,结果为list#多条件查找soup.find_all('a', href="#id73")#查找tag名为a并且href=“#id73”的标签#使用这则表达式查找soup.find_all(href=re.compile(r'#id\d*?'), limit=10)#返回10条href符合该正则表达式的标签#另一种调用方式tag() ==> tag.find_all()soup('a') #和soup.find_all('a')一样
find函数
和find_all
类似,不过,find_all
返回的是集合,而find返回的是单个元素
soup.find('a')#返回改tag下的第一个a标签#另一种形式tag.tagsoup.a #和soup.find('a')一样
其他的用法大家参考以下文档
参考文档:
https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html
0 0
- 03.BeautifulSoup使用
- 使用beautifulsoup
- BeautifulSoup使用
- BeautifulSoup使用
- BeautifulSoup使用
- BeautifulSoup 安装及其使用
- beautifulsoup 简单使用
- python 中使用BeautifulSoup
- Beautifulsoup 使用笔记
- BeautifulSoup使用总结
- BeautifulSoup的安装使用
- Python BeautifulSoup基本使用
- beautifulSoup的使用
- BeautifulSoup使用笔记
- 【Python】BeautifulSoup使用
- BeautifulSoup的使用
- BeautifulSoup中的选择器使用
- BeautifulSoup使用相关知识
- 如何设置Activity的启动模式?
- 怎么样加载aar包,并检验是否加载成功
- 多重继承和多继承、虚函数、纯虚函数、抽象类、接口类
- Android 三分钟集成微信热修复Tinker
- 图像拼接(十):OPenCV stitching和stitching_detailed
- 03.BeautifulSoup使用
- oracle存储过程和存储函数
- 缓存 Redis + Jedis
- linux文件命令
- 热身之回家养猪
- ZooKeeper 常用四字命令
- 创建bmp图片方法
- 153. Find Minimum in Rotated Sorted Array
- 代收代扣代付