BeautifulSoup学习笔记

本文使用的是BeautifulSoup 3,现在已经有BeautifulSoup4了,名字改为bs4
 
(1)下载与安装
1
2
# BeautifulSoup 的下载与安装
pip install BeautifulSoup
另外也可以下载安装包进行安装
(2)快速开始
1
2
3
4
# BeautifulSoup 快速开始
html_doc  =  urllib2.urlopen( 'http://baike.baidu.com/view/1059363.htm' )
soup  =  BeautifulSoup(html_doc)
print  soup.title
结果:
1
2
# BeautifulSoup 结果
<title>前门大街_百度百科< / title>
(3)BeautifulSoup对象介绍
BeautifulSoup中主要包含三种类型的对象:
  • BeautifulSoup.BeautifulSoup
  • BeautifulSoup.Tag
  • BeautifulSoup.NavigableString
通过下面例子来认识上面的三种数据类型:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# BeautifulSoup 示例
from  BeautifulSoup  import  BeautifulSoup
import  urllib2
 
html_doc  =  urllib2.urlopen( 'http://www.baidu.com' )
 
soup  =  BeautifulSoup(html_doc)
 
print  type (soup)
print  type (soup.title)
print  type (soup.title.string)
 
print  soup.title
print  soup.title.string
结果为
1
2
3
4
5
6
7
8
# BeautifulSoup 示例结果
< class  'BeautifulSoup.BeautifulSoup' >
< class  'BeautifulSoup.Tag' >
< class  'BeautifulSoup.NavigableString' >
<title>百度一下,你就知道< / title>
百度一下,你就知道
print  soup.title
print  soup.title.string
从上面的例子可以比较清晰的看到BeautifulSoup主要包括三种类型的对象。
  • BeautifulSoup.BeautifulSoup //BeautifulSoup对象
  • BeautifulSoup.Tag //标签对象
  • BeautifulSoup.NavigableString //导航string文本对象
(4)BeautifulSoup剖析树
1. BeautifulSoup.Tag对象方法
获取标记对象,通过点号获取Tag对象
1
2
3
4
5
6
7
8
9
10
# BeautifulSoup 示例
title  =  soup.title
print  type (title.contents)
print  title.contents
print  title.contents[ 0 ]
 
# BeautifulSoup 示例结果
< type  'list' >
[u '\u767e\u5ea6\u4e00\u4e0b\uff0c\u4f60\u5c31\u77e5\u9053' ]
百度一下,你就知道
contents方法
获得当前标签的内容list,如果该标签没有子标签,那么string方法和contents[0]得到的内容是一样的。见上面示例
next,parent方法
获得当前的标签的子标签和父标签
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# BeautifulSoup 示例
html  =  soup.html
print  html. next
print  ''
print  html. next . next
print  html. next . next .nextSibling
 
# BeautifulSoup 示例结果
<head><meta http - equiv = "content-type"  content = "text/html;charset=utf-8"  / ><meta http - equiv = "X-UA-Compatible" content = "IE=Edge"  / ><meta content = "always"  name = "referrer"  / ><meta name = "theme-color"  content = "#2932e1"  / ><link rel = "shortcut icon"  href = "/favicon.ico"  type = "image/x-icon"  / ><link rel = "icon"  sizes = "any"  mask = "mask"  href = "//www.baidu.com/img/baidu.svg"  / ><link rel = "dns-prefetch"  href = "//s1.bdstatic.com"  / ><link rel = "dns-prefetch"  href = "//t1.baidu.com"  / ><link rel = "dns-prefetch"  href = "//t2.baidu.com"  / ><link rel = "dns-prefetch"  href = "//t3.baidu.com"  / ><link rel = "dns-prefetch"  href = "//t10.baidu.com"  / ><link rel = "dns-prefetch"  href = "//t11.baidu.com"  / ><link rel = "dns-prefetch"  href = "//t12.baidu.com"  / ><link rel = "dns-prefetch"  href = "//b1.bdstatic.com"  / ><title>百度一下,你就知道< / title>
......
< / head>
 
<meta http - equiv = "content-type"  content = "text/html;charset=utf-8"  / >
<meta http - equiv = "X-UA-Compatible"  content = "IE=Edge"  / >
nextSibling,previousSibling
获得当前标签的下一个兄弟标签和前一个兄弟标签

 

转载于:https://www.cnblogs.com/xiamaogeng/p/4646313.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BeautifulSoup是一个Python库,用于从HTML或XML文件中提取数据。它提供了一种简单而灵活的方式来解析和遍历标记文档,并提供了许多有用的方法和属性来获取所需的信息。 在BeautifulSoup库的学习笔记中,介绍了BeautifulSoup库的简介和安装方法。它可以通过pip进行安装,并且有多种解析器可供选择。BeautifulSoup类有五种基本元素,包括Tag标签、Name名字、Attributes属性、NavigableString非属性字符串和Comment注释。它们可以用于遍历标签树的下行、上行和平行遍历。此外,BeautifulSoup几乎覆盖了HTML和XML中的所有内容,还包括一些特殊对象,例如文档的注释部分。 需要注意的是,BeautifulSoup对象本身不是真正的HTML或XML的tag,因此它没有name和attribute属性。但是,在某些情况下,查看它的.name属性是很方便的,因此BeautifulSoup对象包含了一个特殊属性.name,其值为"[document]"。另外,还有一些特殊对象,例如注释对象,可以通过使用BeautifulSoup库来处理。 综上所述,BeautifulSoup库提供了强大的解析和提取HTML或XML中数据的功能,适用于各种爬虫和数据提取任务。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [BeautifulSoup学习笔记一](https://blog.csdn.net/weixin_43978546/article/details/104858873)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [BeautifulSoup 学习笔记](https://blog.csdn.net/zhengjian0617/article/details/81142540)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值