Beautiful Soup的用法(二):元素之间的关系

阅读: 评论:0

Beautiful Soup的用法(二):元素之间的关系

Beautiful Soup的用法(二):元素之间的关系

一开始我们就举了这样的例子,使用find或者是find_allhtml的代码进行搜索,为了弄清Beautiful Soup 中的关系,我们来看看这样的一段代码,其中会产生一些疑问,通过疑问的排查过程,能够更进一步的了解Beautiful Soup

看如下的代码:

_#!/usr/bin/python  
#coding=utf-8  _**from** bs4 **import** BeautifulSoup  html = """  
<html><head><title>The Dormouse's story</title></head>  
<body>  
<p class="title" name="dromouse"><b>The Dormouse's story</b></p>  
<p class="story">Once upon a time there were three little sisters; and their names were  
<a href="" class="sister" id="link1"><!-- Elsie --></a>,  
<a href="" class="sister" id="link2">Lacie</a> and  
<a href="" class="sister" id="link3">Tillie</a>;  
and they lived at the bottom of a well.</p>  
</body>  
</html>  
"""  soup = BeautifulSoup(html, "lxml")  
print 'soup',type(soup)  body_tag = soup.find('body')  
print 'body_tag',type(body_tag)  a_tag = body_tag.find('a')  
print 'a_tag',type(a_tag)  a_list = body_tag.find_all('a')  print 'a_list',type(a_list)

输出的结果如下:

Connected to pydev debugger (build 172.3968.37)
soup <class 'bs4.BeautifulSoup'>
body_tag <class 'bs4.element.Tag'>
a_tag <class 'bs4.element.Tag'>
a_list <class 'bs4.element.ResultSet'>

可以看出,soup bs4.BeautifulSoup类,他有一个函数为find,返回的结果是 bs4.element.Tag类,同时这个bs4.element.Tag类也有一个函数为find,好像bs4.BeautifulSoupbs4.element.Tag 好像有什么关联一样,进一步的来了解这两个类,我们使用help 来看看。

>>> help(BeautifulSoup)
Help on class BeautifulSoup in module bs4:  
class BeautifulSoup(bs4.element.Tag)
...

发现了class BeautifulSoup(bs4.element.Tag) 说明 bs4.element.TagBeautifulSoup 的父类,bs4.element.Tag有德属性,BeautifulSoup 都会拥有的。这是很关键的一个联系,bs4.element.Tag 通过find后返回的是自己也就是bs4.element.Tag,这样就可以一直find下去,因为他们都有同一个 函数find

我们再来看一下 find_all,他返回的结果为bs4.element.ResultSet ,这个bs4.element.ResultSet 是什么东西呢?通过同样的方法,我们会发现bs4.element.ResultSet 其实是一个listlist中的每个元素还是bs4.element.Tag,这样的话还是可以使用find的。必须理清这几个之前的关系,后面处理起来就非常方便了。

通过上面的分析以后,我们发现重点是bs4.element.Tag,需要清楚bs4.element.Tag的各个属性,这是Beautiful Soup 的关键。

本文发布于:2024-01-28 13:46:09,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064207757838.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

下一篇:Beautiful Matrix
标签:元素   关系   Beautiful   Soup
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23