发布时间: 来源:服务器之家
对象有属性。每一个Tag都有一个名称,可以通过/elsie
父tag包含的子tag存放在一个叫做contents的列表中,string是不含有contents属性的。除了通过列表访问子tag,你还可以通过children迭代访问子tag。
如果一个tag中包含有多个string则可以通过strings来访问所有的string。既然允许从父tag查找子tag,那也可以从子tag回溯查找父tag了。每个tag和string都有父tag。可以通过.parent属性访问该tag的父tag。亦可以通过.parents访问该tag的所有父tag。
在文档开始的HTML例子中,第二个p标签下面有三个a标签,而且都处于同一级别,我们叫这三个a标签为siblings,可以通过.next_sibling和.previous_sibling属性向前或者向后访问处于同一级别的标签。
在前几篇文章,我们学会了如何获取html文档内容,就是从url下载网页。今天开始,我们将讨论如何将html转成python对象,用python代码对文档进行分析。
(牛小妹在学校折腾了好几天,也没把html文档给分析出来。接下来的几篇文章,你可就要好好看了)
获取和修改对象的名称及属性
#注意,第二个参数一定是这样用字符串,照官方文档要报错。现在BeautifulSoup 是4.6
是指一个属性有多个值。
注意:这里使用的是 lxml-xml 解析器 所以看不出来是多值。用html。parser转出来的就是多值。
如果某个属性看起来好像有多个值,但在任何版本的HTML定义中都没有被定义为多值属性,那么Beautiful Soup会将这个属性作为字符串返回
注意看a 标签的rel属性
tag中包含的字符串不能编辑,但是可以被替换成其它的字符串,用 方法: