zoukankan      html  css  js  c++  java
  • python爬虫 BeautifulSoup

    简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。

    Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。

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

    1.Tag 是什么?通俗点讲就是 HTML 中的一个个标签

      利用 soup加标签名轻松地获取这些标签的内容,是不是感觉比正则表达式方便多了?soup.title 得到的是title标签,soup.p 得到的是文档中的第一个p标签,要想得到所有标签,得用find_all函数。find_all 函数返回的是一个序列,可以对它进行循环,依次得到想到的东西.。

      对于 Tag,它有两个重要的属性,是 name 和 attrs

    2.NavigableString

      既然我们已经得到了标签的内容,那么问题来了,我们要想获取标签内部的文字怎么办呢?很简单,用 .string 即可

    3.BeautifulSoup

      BeautifulSoup 对象表示的是一个文档的全部内容.大部分时候,可以把它当作 Tag 对象,是一个特殊的 Tag

    4. Comment  

      Comment 对象是一个特殊类型的 NavigableString 对象,其实输出的内容仍然不包括注释符号

    5.遍历文档树

      直接子节点:

      .contents

      tag 的 .content 属性可以将tag的子节点以列表的方式输出。可以使用 [num] 的形式获得。使用contents向后遍历树,使用parent向前遍历树

      .children

      它返回的不是一个 list,不过我们可以通过遍历获取所有子节点。我们打印输出 .children 看一下,可以发现它是一个 list 生成器对象。

      可以使用list可以将其转化为列表。当然可以使用for 语句遍历里面的孩子。

      所有子孙节点:

    6.搜索文档树

         最常用的是find_all()函数

    7.CSS选择器

        在写 CSS 时,标签名不加任何修饰,类名前加点,id名前加 #

     在这里我们也可以利用类似的方法来筛选元素,用到的方法是 soup.select(),返回类型是 list

        1.通过标签名查找

        2.通过类名查找

        3.通过id查找

        4.组合查找

        5.属性查找

    参考:http://blog.csdn.net/freeking101/article/details/60886125

  • 相关阅读:
    Html 播放 mp4格式视频提示 没有发现支持的视频格式和mime类型
    如何防止网站短信验证码被攻击
    JS和C#.NET获取客户端IP
    H5案例分享:移动端touch事件判断滑屏手势的方向
    防止asp.net连续点击按钮重复提交
    JS正则表达式验证手机号和邮箱
    sql server查询数据库的大小和各数据表的大小
    大型分布式网站架构技术总结
    一个高逼格开发者必须理解的大型分布式网站的几点概念
    C# 在程序中控制IIS服务或应用程序池关闭重启
  • 原文地址:https://www.cnblogs.com/shunyu/p/8516628.html
Copyright © 2011-2022 走看看