5.BeautifulSoup
5.1 安装
pip install beautifulsoup4
5.2 re lxml bs4的区别
工具 | 速度 | 使用难度 |
---|
正则 | 最快 | 最难 |
lxml | 较快 | 一般 |
BeautifulSoup | 慢 | 最简单 |
7.4 解析字符串
str1='<div>这是测试div</div>'
soup = BeautifulSoup(str1,'lxml')
print(soup)
注意:使用 BeautifulSoup时会自动选择系统最佳的解释器,也可以自己指定lxml
7.5 获取数据
from bs4 import BeautifulSoup
import re
soup = BeautifulSoup(html_str,'lxml')
# tag标签获取数据 soup对象名.标签名
print(soup.title)
print(soup.title.text)
print(soup.a)
#获取当前标签所有属性,数据类型是字典
print(soup.a.attrs)
print(type(soup.a.attrs))
#获取指定属性
print(soup.a['href'])
print(soup.a.get('href'))
tag_list = soup.find_all('i')
print(tag_list[5])
print(len(tag_list))
soup.find()
# ^表示以什么开头,$表示以什么结尾
tag_list = soup.find_all(re.compile('^d'))
print(len(tag_list))
print(len(tag_list))
print(tag_list)
tag_list = soup.find_all(['dic','a'])
#搜索文档中所有的字符串
tag_list = soup.find_all(text=2570)
print(tag_list)
tag_list = soup.find_all(class_='easyList')
print(tag_list)
tag_list = soup.find_all(id='roomFrom')
print(tag_list)
#css选择器
print(soup.select('title'))
print(soup.select('#roomFrom')) #id选择器是 #
print(soup.select('.easyList')) #class选择器的 .
soup.select_one()
#组合查找中间用空格隔开
# print(soup.select('ul .easyList'))
print(soup.select('ul[class="easyList"]'))