请教beautiful soupsoup解析html

发布时间: 来源:服务器之家

对象有属性。每一个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会将这个属性作为字符串返回

将tag转换成字符串时,多值属性会合并为一个值

注意看a 标签的rel属性

tag中包含的字符串不能编辑,但是可以被替换成其它的字符串,用  方法:

使用BeautifulSoup工具获取网页上的指定内容
以下是个人在学习beautifulSoup过程中的一些总结,目前我在使用爬虫数据时使用的方法的是:先用find_all()找出需要内容所在的标签,如果所需内容一个find_all()不能满足,那就用两个或者多个。接下来遍历find_all的结果,用get_txt()、get('href')、得到文本或者链接,然后放入各自的列表中。这样做有一个缺点就是txt的数据是一个单独的列表,链接的数据也是一个单
    前文提到了Python爬虫框架之一的——Scrapy框架安装和相关命令的简单使用,熟悉了起码的实用流程。今天我们进行一些细节上的总结。如题,在我们要获取目标文本所在的标签时,通常有几种方法,下面我们挨个举例说明各种用法的使用:     以百度贴吧小说吧中的一篇小说为例,我们开始进行爬虫举例,该小说链接为:/p/?pn=1 ...

我要回帖

更多关于 beautiful soup 的文章

 

随机推荐