zoukankan      html  css  js  c++  java
  • PYTHON BS 四大对象

    BeautifulSoup是灵活又方便的网页解析库,处理搞笑,支持多种解析器
    利用它不用编写正则表达式即可方便地实现网页信息的提取
    BS的四大对象:
    1.Tag
    Tag就是HTML中的一个个标签,例如:
    <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>
    我们就可以通过Bs轻松的从Html中获取
    soup = BeautifulSoup(html,"lxml")
    print(soup.a)
    当然你也可以获取别的标签
    我们来验证以下这些对象的类型
    print(type(soup.a))
    <class 'bs4.element.Tag'>
    对于Tag,它有两个重要的属性,name 和 attrs
    print(soup.a.name)
    print(soup.a.attrs)
    #a
    #{'href': 'http://example.com/elsie', 'class': ['sister'], 'id': 'link1'}
    name这个比较特殊,它就代表着标签名称,而attrs则代表自己的一些信息,或者称作属性.它是一个字典形,那如果我们想获取里面的某个值怎么做呢,直接访问那个key就完事了.
    print(soup.a['href'])
    结果为:#http://example.com/elsie
    2.NavigableString
    既然我们已经得到了标签的内容,那么问题来了,那我们想获取里面 d的内容应该怎么办,直接.string即可..
    print soup.p.string
    #The Dormouse's story
    这样就方便多了,它的类型是什么呢
    print type(soup.p.string)
    #<class 'bs4.element.NavigableString'>
    3.BeautifulSoup
    BeautifulSoup对象表示一个文档的所有内容,大部分时候,我们可以将它当作一个Tag,我们可以获得它的类型 名称 属性 让我们Feel一下。
    print type(soup.name)
    #<type 'unicode'>
    print soup.name
    # [document]
    print soup.attrs
    #{} 空字典
    4.Comment
    有意思的是,如果其中的内容有htmlz注释 “.string” 它会自动的过滤掉注释 所以我们可以进行下判断
    print(type(soup.a.string))
    print(bs4.element.Comment)
    #<class 'bs4.element.Comment'>
    #<class 'bs4.element.Comment'>
    if type(soup.a.string)=bs4.element.Comment:
    print(soup.a.string)

  • 相关阅读:
    大型网站架构系列:负载均衡详解(1)
    转:构建高并发高可用的电商平台架构实践
    转:RBAC权限控制
    小型电商网站的架构
    中小型电子商务网站架构
    装饰器在类中的实现
    使用MySQLdb操作Mysql数据库
    unicode转中文以及str形态的unicode转中文
    了解Python内存管理机制,让你的程序飞起来
    多线程初级入门学习
  • 原文地址:https://www.cnblogs.com/ZaraNet/p/qq947099752.html
Copyright © 2011-2022 走看看