Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1788898
  • 博文数量: 335
  • 博客积分: 4690
  • 博客等级: 上校
  • 技术积分: 4341
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-08 21:38
个人简介

无聊之人--除了技术,还是技术,你懂得

文章分类

全部博文(335)

文章存档

2016年(29)

2015年(18)

2014年(7)

2013年(86)

2012年(90)

2011年(105)

分类: Python/Ruby

2013-08-26 23:03:09

    python的文本处理功能是毋庸置疑的,一般的文字的处理我们使用的RE,在处理HTML的时候,我们不得不说的就是,现在我们就从头开始学习一遍~~~

1 下载安装由于beautifulsoup4是使用PYPI,因此该package的安装同我们的安装包不同,直接加压到python的lib下还是不够,需要进行
install 
命令如下:
python setup.py install
如果遇到其他错误,请参考2 quick-start 

该命令的意思是: 将html进行格式化输出,是不是很简单?
这里需要说明的是,soup是一个doucument对象,对应一个python 的BEAUTIFULSOUP 对象
 
这是我们需要介绍的第一个对象
点击(此处)折叠或打开
  1. print(soup.title)
  2. print(soup.title.name)
  3. print(soup.title.string)
作业输出如下:
The Dormouse's story
title
The Dormouse's story
你可以通过标签来访问相应的元素,
其中,soup.title 为TAG对象,该对象具有很多属性

这是我们需要介绍的第二个对象实例
这里的TAG和HTML里面的TAG是一一对应的。

点击(此处)折叠或打开

  1. print(soup.title.parent)
  2. print(soup.title.parent.name)
  3. print(soup.title.parent.string)
结果输出:
The Dormouse's story
head
The Dormouse's story
是不是有点意思了?,该标签的父标签,父标签也是标签,同样具有某些属性

点击(此处)折叠或打开

  1. print(soup.p)
  2. print(soup.p['class'])
  3. print(soup.a)
  4. print(soup.find_all('a'))
  5. print(soup.find(ID='link3'))

The Dormouse's story



['title']
Elsie
[
Elsie, Lacie, Tillie]
Tillie

  1. print(soup.p)
返回第一个P标签
  1. print(soup.p['class'])
返回P标签中的属性值,属性于属性值是以dictionary形式存在
  1. print(soup.find_all('a'))
返回文档中所有的A标签

   1. print(soup.find(ID='link3'))
返回第一个ID=link3的标签
Tillie

print(type(soup.find(id='link3')))


同样访问一个TAG的属性时,同样可以使用dictionary的方式:
print(soup.a['id'])===》 link1

这里唯一需要注意的是,就是标签的值,标签所包含的值,

点击(此处)折叠或打开

  1. print(soup.title)
  2. print(soup.title.name)
  3. print(soup.title.string)
  4. print(type(soup.title))
    print(type(soup.title.name))
    print(type(soup.title.string))

The Dormouse's story
title
The Dormouse's story



发现问题没有,标签值竟然是bs4.element.NavigableString,不是我们通常所说的string,因此不能直接进行操作,不过不必大惊效果,NavigableString就是一个文本,只不过被BeautifulSoup包装了一把而已,它的功能比常见的STring的功能更加强大,这个在后边你会看到,它支持 and 这里如果你打算进行string操作的话,需要进行一个转换,方法也很简单

点击(此处)折叠或打开

  1. print(str(soup.title.string))
  2. print(type(str(soup.title.string)))

The Dormouse's story

官方文档给出的转换函数式unicode,但是貌似python 3 已经不支持,待求证呵呵

最后介绍一个大招,就是获取整个文档的文本内容

点击(此处)折叠或打开

  1. print(soup.get_text())
  2. print(type(soup.get_text()))

The Dormouse's story
Once upon a time there were three little sisters; and their names were
Elsie,
Lacie and
Tillie;
and they lived at the bottom of a well.
...




最后,总结一下介绍内容主要:
   ----document对象
  标签
----------属性
  ---string对象
后面我们将学习一下NavigableString


REF:
















阅读(4656) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~