Python-Bs4

bs4 是将复杂的HTML文档转换为一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种
-Tag
-NavigableString
-BeautifulSoup
-Comment
from bs4 import  BeautifulSoup

file = open("./baidu.html","rb")
html = file.read().decode()
bs = BeautifulSoup(html,"html.parser")
print(bs.title)               #<title>百度一下,你就知道 </title>
#
print(type(bs.head))
# #<class 'bs4.element.Tag'>  Tag标签只能获取第一个内容
#
#
# print(bs.title.string)        #百度一下,你就知道
# print(type(bs.title.string))  #<class 'bs4.element.NavigableString'>标签中的字符串
#
# print(type(bs))  #<class 'bs4.BeautifulSoup'> 表示整个文档
#
# print(bs.a.string) #新闻
# print(type(bs.a.string))  #<class 'bs4.element.Comment'>是一个特殊的NavigableString,输出的不包含注释和符号


#----------------------文档遍历

#遍历
# print(bs.head.contents)
# print(bs.head.contents[1])

#文档搜索
#1)find_all 会查找与字符串完全匹配的内容
#list = bs.find_all("a")
#search 正则表达式来匹配内容
import  re
#list = bs.find_all(re.compile("a"))

#方法  :传入一个函数,根据函数的要求来搜索
# def name_is_exists(tag):
#     return tag.has_attr("name")
# list = bs.find_all(name_is_exists)
# for i in list:
#     print(i)
# print(list)
def out(list):
 for i in list:
   print(i)
#2) kwargs  参数

# list = bs.find_all(id = "head")
# out(list)


#3)text参数
#list = bs.find_all(text= "hao123")
# list = bs.find_all(text= re.compile("\d")) #用正则表达式来查找目标内容
# out(list)

#4)limit 参数  限定数量
# list = bs.find_all("a",limit=4)
# out(list)

#css选择器

# print(bs.select("title")) #通过
#
# out(bs.select(".mnav")) #通过类名来查找
#
# out(bs.select("#u1"))  #通过Id来查找

# out(bs.select("a[class='bri']")) #通过属性来查找

# out(bs.select("head>title"))   #通过子标签来查找

out(bs.select(".mnav~.bri"))     #兄弟标签
out( bs.find_all(text = re.compile(r".*.com")))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值