zoukankan      html  css  js  c++  java
  • Python爬虫基础(二)--beautifulsoup-美丽汤框架介绍

    beautifulsoup 框架介绍

    框架官方中文文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/

    框架基本使用:

    Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种:

      Tag:标签

      NavigableString:  可遍历字符串对象

      BeautifulSoup:表示一个文档的全部内容

      Comment:注释

    find_all()函数:

    find_all( name , attrs , recursive , string , **kwargs )

      搜索 name 参数的值可以使任一类型的 过滤器 ,字符窜,正则表达式,列表,方法或是 True

           recursive :布尔型,是否查找所有子节点,默认为true

    eg:

    find_all("a")  查找标签为a

    find_all(id="xx")  查找id为xx的属性

    soup.find_all(href=re.compile("elsie"), id='link1')  查找属性值包含"elsie"且id为'link1'

    data_soup.find_all(attrs={"data-foo": "value"})  查找属性名为data-foo值为value

    soup.find_all("a", class_="sister")  查找标签为a,class为sister(注意class是python中的关键字,所以这里要用class_)

    soup.find_all("a", attrs={"class": "sister"})   查找标签为a,class属性为sister

    find_next_siblings() 和 find_next_sibling()  平行查找(在同一个父节点下的下一个/所有子节点,注意是同一个父节点下)

    css选择器:select()

    soup.select("title")  查找title标签

    soup.select("p:nth-of-type(3)")  查找p标签

    soup.select("body a")  查找body标签中的a标签

    soup.select(".sister")    查找class为sister的标签  注意有个.

    soup.select("[class~=sister]")  查找class为sister的标签 符号:~=

    soup.select("a#link2")     查找a标签且id为lingk2

    soup.select("#link1,#link2")  查找id为link1或者lingk2

    soup.select('a[href]')    查找a标签且存在属性名为href

    输出:

    格式化输出:soup.prettify()

    压缩输出:str(soup) 或者 unicode(soup.a)  (应用于只想得到结果字符串,不重视格式)

    输出tag中的文本内容:get_text()

    输出tag中的文本内容扩展:soup.get_text(strip=True)  去除文本前后的空白符

    其他详细介绍可以参阅官方文档

  • 相关阅读:
    递归程序设计方法
    深入理解 Entity Framework
    面向对象设计的七大原则分析与实践
    JavaScript内置对象与原型继承
    设计模式之创建型(1)-简单工厂
    设计模式之创建型(2)-工厂方法模式
    设计模式之创建型(3)-抽象工厂模式
    设计模式之创建型(4)-建造者模式(Builder)
    设计模式之创建型(5)-单例模式(Singleton)
    设计模式之创建型(6)-原型模式(Prototype)
  • 原文地址:https://www.cnblogs.com/james-danni/p/11847640.html
Copyright © 2011-2022 走看看