beautifulsoup (python)

2018-05-15  本文已影响7人  sunnyRube

用BeautifulSoup解析html和xml字符串

对象参数说明

实例:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

from bs4 import BeautifulSoup

import re

#待分析字符串

html_doc = """ 

<html>

<head>

<title>test</title>

</head>

<body>

<p>文章名</p>

</body></html>

"""

# html字符串创建BeautifulSoup对象

soup = BeautifulSoup(html_doc,'html.parser',from_encoding='utf-8')

#输出第一个title标签

print soup.title

#输出第一个 title 标签的标签名称

print soup.title.name

#输出第一个 title 标签的包含内容

print soup.title.string

#输出第一个 title 标签的父标签的标签名称

print soup.title.parent.name

#输出第一个  p标签

print soup.p

#输出第一个  p标签的class属性内容

print soup.p['class']

#输出第一个  a标签的  href属性内容

print soup.a['href']

'''

soup的属性可以被添加,删除或修改. 再说一次, soup的属性操作方法与字典一样

'''

#修改第一个a标签的href属性为http://www.baidu.com/

soup.a['href']= 'http://www.baidu.com/'

#给第一个a标签添加name属性

soup.a['name']= u'百度'

#删除第一个a标签的class属性为

del soup.a['class']

##输出第一个  p标签的所有子节点

print soup.p.contents

#输出第一个  a标签

print soup.a

#输出所有的  a标签,以列表形式显示

print soup.find_all('a')

#输出第一个id属性等于  link3的  a标签

print soup.find(id="link3")

#获取所有文字内容

print(soup.get_text())

#输出第一个  a标签的所有属性信息

print soup.a.attrs

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

    #获取link的  href属性内容

    print(link.get('href'))

#对soup.p的子节点进行循环输出   

for child in soup.p.children:

    print(child)

#正则匹配,名字中带有b的标签

for tag in soup.find_all(re.compile("b")):

    print(tag.name)

上一篇下一篇

猜你喜欢

热点阅读