美文网首页
【Data_Talks】Python学习笔记-Ch6Beauti

【Data_Talks】Python学习笔记-Ch6Beauti

作者: 滢滢_5402 | 来源:发表于2018-08-26 11:20 被阅读0次

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

    Tag

    NavigableString

    BeautifulSoup

    Comment

    可以通过type(soup.元素)来判断对象类型

    下面以豆瓣读书为例,进行实例说明(https://book.douban.com/)。1.首先通过request获取首页HTML文档,如下:

    然后我们来看看通过beautifulsoup转换后的树状文档:

    1. Tag:下面的<html,<title,<meta等标签加上后面的内容就是tag了。

    1.1获取标签语句soup.标签名:即可以查找出该标签的完整文档,若存在多个相同标签名,则返回第一个标签。

    1.2获取元素类型

    下面为了验证我们的判断,即<>标识标签部分的起始,我们用type()来验证下各元素的类型。

    接下来我们看看标签由哪些属性组成:name(名字)+attrs:

    1.3获取标签名和标签属性

    直观判断:紧靠<符号部分的字符串组即为标签的名,而空格后的字符串即为标签的属性。

    可以分别通过soup.标签.namesoup.标签.attrs来加以验证和判断。属性与名称通常为多对1关系,即1个标签名对应多个属性,通过soup.标签.attrs可以获取所有属性并返回字典

    选择某个特定属性soup.标签.attrs['']或者soup.标签['']

    2. NavigableString

    既然我们已经得到了标签的内容,那么问题来了,我们要想获取标签内部的文字怎么办呢?很简单,用 .string 即可.这部分是独立于标签名称标签属性之外的标签文字内容

    3. beautifulsoup

    4. comment

    II.遍历树状文档

    contents和children两种方法

    contents返回一个子节点列表(可以直接打印)

    children返回一个子节点迭代(不能直接打印,需要通过for xx in yy的语句获取内容)

    相关文章

      网友评论

          本文标题:【Data_Talks】Python学习笔记-Ch6Beauti

          本文链接:https://www.haomeiwen.com/subject/lbnniftx.html