• BeautifulSoup基础应用


    BeautifulSoup是用于HTML的解析的库,其实也比较容易理解,就是当我们把网页的源代码获取下来后,使用BeautifulSoup来进行对特定内容的提取;

    接下来就好理解了,BeautifulSoup既然是用来提出HTML源代码中的内容的,那我们只需要理解它的提取规则就行了;

    1.讲规则之前,首先我们来理解一下简单的使用步骤;

       步骤:

      A.获取HTML源代码(requests) ->B.将源码传给BeautifulSoup并生成对象 -> C.通过BeautifulSoup实例对象调用方法获取指定内容;

    2.规则

        根据上面的步骤,再来理解一下规则,也就是细节部分

        步骤A : 很好理解,就是用requests.get方法,或者其他方法来请求网页,获取网页源代码;例如:      html = requests.get(url).content.decode() 

        步骤B: 也很明了,将源码通过BeautifullSoup参数的形式传递,这一步需加入"指定解析器"环节,如   soup= BeautifullSoup(html,'lxml')   其中的"lxml"就是指定的解析器,另外可以是"html.parser"

        步骤C:  通过对象调用BeautifulSoup的方法,这里面常用的有以下几个方法:

         1.find   

         2.find_all

                      find,find_all参数相同原型:  find_all(name,attrs,recursive,text,**kwargs)

                      name  --html标签名  例如:body,div,li,ul

         attrs -- 参数的值是一个字典,字典的key是属性名,字典的value是属性值,例如:attrs = {'class':'useful'}

         recursive 的值为True或者False,当它为False的时候,BS4不会搜索子标签.

         text 可以是一个字符串或者是正则表达式,用于搜索标签里面的文本信息,因此,要寻找所有以"我需要"开头的信息,还可以使用下面的写法:

               content = soup.find_all(text = re.compile('我需要')

              for each in content:

                print(each.string)

        **kwargs 表示key = value形式的参数.这种方式也可以用来根据属性和属性的值进行搜索.这里的key是属性,value是属性值.如果搜索的html标签的class属性,就需要写成class_.大多                              数情况下,参数与标签配合使用,但是有时候如果属性值非常特殊,也可以省略标签,只用属性:

       find_all('div',id = 'test')

         find_all(class_ = 'iamstrange')

        

    find,find_all 区别,find发现目标后,立即停止,返回目标BeautifulSoup Tag对象; find_all返回所有匹配到的BeautifulSoup Tag对象列表;需要使用遍历的方法来逐个输出匹配到的目标;

    好吧,find,find_all,原型参数,啰嗦了一大阵,其实用的时候就那么几种,看个人习惯,哪种方式都可以,会用的,习惯的,也就是高效的;

     小结:使用BeautifulSoup的时候,首先需要得到网页的源代码,然后付给BeautifulSoup的实例化对象,通过对象去调用find,find_all方法      

  • 相关阅读:
    滑动窗口与选择搜索
    R-CNN,SPP-NET, Fast-R-CNN,Faster-R-CNN, YOLO, SSD, R-FCN系列深度学习检测方法梳理
    GD和SGD区别
    AlexNet、VGG、NIN、GoogLeNet、ResNet
    目标检测中的precision,recall,AP,mAP计算详解
    转:图像分类、物体检测、物体分割、实例分割、语义分割
    卷积网络CNN中各种常见卷积过程
    卷积网络中的通道(Channel)和特征图
    人工智能之卷积神经网络(CNN)
    科技文献检索(一)——课程介绍及信息素养
  • 原文地址:https://www.cnblogs.com/tinglele527/p/14889787.html
Copyright © 2020-2023  润新知