爬虫笔记六------BeautifulSoup

BeautifulSoup是将复杂的HTML文档转换成一个复杂的树形结构,每个节点都是python对象,周游的节点可以归纳为四种
Tag:标签及其类容,不过只能拿到第一个找到的对象
Navigablestring:拿到标签里面的类容
BeautifulSoup:拿到整个文档
comment:拿到注释
from bs4 import BeautifulSoup
file = open("./baidu.html","rb")
html = file.read().decode("utf-8")
bs = BeautifulSoup(html,"lxml")#第一个参数表示要被解析的对象文件,第二个参数是解析器
print(bs)#显示整个文档
print(bs.title)#标签和标签里面的类容
print(bs.title.string)#只显示找到的第一个标签里面的类容

文档的遍历

from bs4 import BeautifulSoup
file = open("./baidu.html","rb")
html = file.read().decode("utf-8")
bs = BeautifulSoup(html,"lxml")#第一个参数表示要被解析的对象文件,第二个参数是解析器
#文档的遍历
print(bs.head.contents[1])#获的头部标签类容,并且以列表形式进行返回

文档的搜索

#文档的搜索
#字符串过滤:会查找与字符串完全匹配的字符。返回一个列表,列表里面的每个元素是包含标签。
print(bs.find_all("title"))
#正则表达式进行搜索,会查找所有与标签有a的
t_list = bs.find_all(re.compile("title"))
for i in t_list:
    print(i)
#kwargds 参数,返回一个列表
print(bs.find_all(id='head'))

#text参数 ,可以和正则表达式进行配合找到包含特定文本标签里面的类容
print(bs.find_all(text=re.compile("\d")))#匹配文本里面有数字的文本类容,标签并不会给出来

#limit参数
print(bs.find_all("h1",limit=3))#这里还是会给你出标签的

css选择器

 

#css选择器
#1.通过标签来查找
print(bs.select('title'))#这个是会返回标签的,和字符串过滤器达到的效果是一样的
print(bs.select('.mnav'))#通过类名进行查找
print(bs.select('#u1'))#通过id进行查找
# print(bs.select('a[classes]=bc'))#通过属性进行查找
print(bs.select("head>meta"))#通过子标签进行查找
print(bs.select('h1~h2'))#通过兄弟标签进行查找

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值