-
安装
- pip3 install beatfifulsoup4
-
用法
- 解析库
- Python标准库
- BeautifulSoup(markup, 'html.parser')
- lxml HTMLj解析器
- BeautifulSoup(markup, 'lhtml')
- 需要安装C语言库
- lxml XML解析器(最常用)
- BeautifulSoup(markup, 'lxml')
- 需要安装C语言库
- html5lib
- BeautifulSoup(markup, 'html5lib')
- Python标准库
- 基本使用
- from bs4 import BeautifulSoup
- soup = BeautifulSoup(html, 'lxml')
- print(soup.pretty)格式美化
- print(soup.title.string)
- 选择元素
- print(soup.title)
- print(soup.p)默认打印第一个p标签
- 获取名称
- print(soup.title.name)
- 获取属性
- print(soup.p.attrs['name'])
- print(soup.p.['name'])
- 获取内容
- print(soup.p.string)
- 嵌套选择
- soup.head.title.string
- 子节点和孙节点
- soup.p.contents 把子节点用一个列表的方式返回
- soup.p.children
- for i,child in enumerate(soup.p.children)
- print(i,child)
- soup.p.descendants 获取子孙节点
- for i,child in enumerate(soup.p.descendants)
- print(i,child)
- 父节点和祖先节点
- soup.a.parent 获取a的父节点
- soup.a.parents 获取a的祖先节点
- 兄弟节点
- list(enumerate(soup.a.next_siblings))
- list(enumerate(soup.a.previous_siblings))
- 标准选择器
- find_all(name, attrs, recursive, text, **kwargs)
- 可以根据标签名、属性、内容查找文档
- name
- soup.find_all('ui')
- soup.find_all('ui')[0]
- for li in soup.find_all('ui')
- print(li)
- attrs
- soup.find_all(attrs={'id':'list-1'})
- soup.find_all(id='list-1')
- soup.find_all(class='element')
- text
- soup.find_all(text='Foo')
- find(name, attrs, recursive, text, **kwargs)
- find_parents() find_parent()
- find_next_siblings() find_next_sibling()
- find_previous_siblings() find_previous_sibling()
- find_all(name, attrs, recursive, text, **kwargs)
- CSS选择器
- soup.select()
- 解析库
Python爬虫 BeautifulSoup库
最新推荐文章于 2024-08-30 10:01:19 发布