Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2897231
  • 博文数量: 348
  • 博客积分: 2907
  • 博客等级: 中校
  • 技术积分: 2272
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-12 09:16
个人简介

专注 K8S研究

文章分类

全部博文(348)

文章存档

2019年(22)

2018年(57)

2016年(2)

2015年(27)

2014年(33)

2013年(190)

2011年(3)

2010年(14)

分类: Python/Ruby

2013-07-06 14:34:14

BeautifulSoup的使用

(2012-12-19 11:00:01)
标签:

beautifulsoup

杂谈

分类: 学习相关

Beautiful Soup 4的安装及相关问题

Beautiful Soup的最新版本是4.1.1可以在此获取()

 

文档:

()

 

使用:

from bs4 import BeautifulSoup

Example:

html文件:

html_doc = """ The Dormouse's story

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.

...

"""

代码:

from bs4 import BeautifulSoup 

soup = BeautifulSoup(html_doc)

接下来可以开始使用各种功能

soup.X (X为任意标签,返回整个标签,包括标签的属性,内容等)

如:soup.title 

    # The Dormouse's story

    soup.p 

    #

The Dormouse's story

    soup.a  (注:仅仅返回第一个结果)

    # Elsie

    soup.find_all('a') (find_all 可以返回所有)

    # [Elsie, 

    # Lacie, 

    # Tillie]


    find还可以按属性查找

    soup.find(id="link3")

    # Tillie


    要取某个标签的某个属性,可用函数有 find_all,get

    for link in soup.find_all('a'): 

      print(link.get('href')) 

    #  

    #  

    #


    要取html文件中的所有文本,可使用get_text()

    print(soup.get_text()) 

    # The Dormouse's story 

    #

    # 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.

    #

    # ...


    如果是打开html文件,语句可用:

    soup = BeautifulSoup(open("index.html"))



BeautifulSoup中的Object

tag (对应html中的标签)

tag.attrs (以字典形式返回tag的所有属性)

可以直接对tag的属性进行增、删、改,跟操作字典一样

tag['class'] = 'verybold' 

tag['id'] = 1 

tag 

#

Extremely bold
 


del tag['class'] 

del tag['id'] 

tag 

#

Extremely bold
 


tag['class'] 

# KeyError: 'class' 

print(tag.get('class')) 

# None


X.contents (X为标签,可返回标签的内容)

eg.

head_tag = soup.head 

head_tag 

# The Dormouse's story 

head_tag.contents 

[The Dormouse's story

title_tag = head_tag.contents[0] 

title_tag 

# The Dormouse's story 

title_tag.contents 

# [u'The Dormouse's story']


解决解析网页出现乱码问题:


import urllib2
2 from
阅读(16566) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~