BeautifulSoup常用查询方法归类:
import urllib.request
from bs4 import BeautifulSoup
bs = BeautifulSoup(html,"html.parser")
一、四类主要节点
bs.title #通过标签获取标签 Tag
bs.title.string或bs.title.get_text() #通过标签获取标签里面的内容 NavigableString
bs.a.attrs #获取标签里面的所有属性
bs #获取文档所有内容 BeautifulSoup
二、文档的遍历
contents:contents属性可以将tag的子节点以列表的形式输出(不止tag还有navgableString)
for item in bs.head.contents:
print(item)
三、文档的搜索
#find_all通过字符串匹配某个标签,返回一个列表
a_list = bs.find_all('a')
#通过正则表达式搜索标签,返回一个列表
b_list = bs.find_all(re.compile('a'))
#通过kwargs传入的参数查询
d_list = bs.find_all(id='doubanapp-tip')
d_list = bs.find_all(class_True)
d_list = bs.find_all(href="https://www.baidu.com")
#通过text参数查询
e_list = bs.find_all(text='豆瓣')
e_list = bs.find_all(text=['泰坦尼克号','赎罪'])
e_list = bs.find_all(text = re.compile('\d'))
#通过limit限制显示数据数量
f_list = bs.find_all('a',limit=3)
四、CSS选择器
#1.通过标签查询
g_list = bs.select('a')
#2.通过类名查询
g_list = bs.select('.title')
#3.通过id查询
g_list = bs.select('#tip')
#4.通过属性查询
g_list = bs.select("a[class='tip']")
#5.通过子标签来查询
g_list = bs.select("head > meta >title")
#6.通过兄弟节点查询
g_list = bs.select("meta ~ link")