天天看点

爬虫-bs4的使用一.find方法的使用二.finall的使用 三.获取标签页中的文本  四.获取标签当中的属性值五.获取多层层标签层级下的具体内容

目录

一.find方法的使用

二.finall的使用 

三.获取标签页中的文本 

 四.获取标签当中的属性值

五.获取多层层标签层级下的具体内容

beautifulsoup4是Python数据包中专门用于数据解析的数据包,它能够匹配网页原码中的标签页,从而从网页中获得我们想要的数据,本章节我们来讲述bs4的一些简单的使用。

一.find方法的使用

#首先我们打开一个text.html文档,打开的模式为只读模式,其编码为utf-8
fp=open('./text.html','r',encoding='utf-8')
#使用我们的BeautifulSoup函数将我们的文本进行处理。
    soup=BeautifulSoup(fp,'lxml')
    #找到第一次出现的a标签的位置
    print(soup.find('a'))
           
爬虫-bs4的使用一.find方法的使用二.finall的使用 三.获取标签页中的文本  四.获取标签当中的属性值五.获取多层层标签层级下的具体内容

使用我们下面的代码与上面的功能时等价的

print(soup.a)
           
爬虫-bs4的使用一.find方法的使用二.finall的使用 三.获取标签页中的文本  四.获取标签当中的属性值五.获取多层层标签层级下的具体内容

当然,在find方法使用的时候,还可以指定我们的class参数,注意,在我们的class_后面一定要加上“_”,否则就会报错 

print(soup.find('div',class_="special-column-bar"))
           
爬虫-bs4的使用一.find方法的使用二.finall的使用 三.获取标签页中的文本  四.获取标签当中的属性值五.获取多层层标签层级下的具体内容

二.finall的使用 

使用find_all方法,能够找出我们所有满足条件的标签页,并且将所有符合条件的结果组合成一个列表并返回。

print(soup.find_all('div',class_="span"))
           
爬虫-bs4的使用一.find方法的使用二.finall的使用 三.获取标签页中的文本  四.获取标签当中的属性值五.获取多层层标签层级下的具体内容

三.获取标签页中的文本 

获取标签之间的文本数据,可以使用下面的方法

soup.a.text/string/get_text()      

其中soup.string只能获取该标签下直系文本下的内容。

print(soup.script.string)
           
爬虫-bs4的使用一.find方法的使用二.finall的使用 三.获取标签页中的文本  四.获取标签当中的属性值五.获取多层层标签层级下的具体内容

 四.获取标签当中的属性值

下面的代码中我们能获取到整张网页中的body标签页中img标签的src属性值

print(soup.body.img['src'])
           
爬虫-bs4的使用一.find方法的使用二.finall的使用 三.获取标签页中的文本  四.获取标签当中的属性值五.获取多层层标签层级下的具体内容

五.获取多层层标签层级下的具体内容

我们先用select函数寻找span标签,然后再在我们的span标签下匹配p标签

print(soup.select('.span >p'))
           
爬虫-bs4的使用一.find方法的使用二.finall的使用 三.获取标签页中的文本  四.获取标签当中的属性值五.获取多层层标签层级下的具体内容

 接下来我们进行一下对比 

print(soup.select('.span'))
           
爬虫-bs4的使用一.find方法的使用二.finall的使用 三.获取标签页中的文本  四.获取标签当中的属性值五.获取多层层标签层级下的具体内容