<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>python learning</title>
</head>
<body>
<h1>知足</h1>
<div class="newClass" style="border: #000">
一阵风
<p> 知足的快乐 </p>
吹来
<a href="http://www.baidu.com" target="blank">才是真的永久</a>
<div>
<p>五月天</p>
</div>
</div>
</body>
</html>
#!/user/bin/env python
#coding:utf-8
print 'BeautifulSoup对象属性操作'
from bs4 import BeautifulSoup
html = open('D:\\python\\demo.html')
bs = BeautifulSoup(html,'lxml')
print '输出子节点====================================='
#输出子节点
print bs.div.contents
print bs.div.contents[1]
print '子节点迭代====================================='
#获取子节点迭代器,内部实现了递归,可遍历非直接子节点
for child in bs.div.children:
print child.name
print '孙节点迭代====================================='
#包括children,孙节点
for des in bs.div.descendants:
print des.name
print '标签内容迭代====================================='
#获取标签内容迭代器,相应的,.stripped_strings:去空格
for str in bs.div.strings:
print str
print '输出父节点====================================='
#输出父节点
print bs.p.parent.name
print '父节点迭代====================================='
#父节点迭代器,同样是递归的:
for par in bs.p.parents:
print par.name
print '输出同辈节点====================================='
#输出同辈节点,实际上前后的innerhtml内容也算一个节点
print bs.p.previous_sibling.string
print bs.p.next_sibling
print '输出前后节点====================================='
#输出前后节点,实际上前后的innerhtml内容也算一个节点
print bs.p.previous_element
print bs.p.next_element
输出:
BeautifulSoup对象属性操作
输出子节点=====================================
[u'\n\t\t\u4e00\u9635\u98ce\n\t\t', <p>\xa0\xa0\u77e5\u8db3\u7684\u5feb\u4e50\xa0\xa0</p>, u'\n\t\t\u5439\u6765\n\t\t', <a href="http://www.baidu.com" target="blank">\u624d\u662f\u771f\u7684\u6c38\u4e45</a>, u'\n', <div>\n<p>\u4e94\u6708\u5929</p>\n</div>, u'\n']
<p> 知足的快乐 </p>
子节点迭代=====================================
None
p
None
a
None
div
None
孙节点迭代=====================================
None
p
None
None
a
None
None
div
None
p
None
None
None
标签内容迭代=====================================
一阵风
知足的快乐
吹来
才是真的永久
五月天
输出父节点=====================================
div
父节点迭代=====================================
div
body
html
[document]
输出同辈节点=====================================
一阵风
吹来
输出前后节点=====================================
一阵风
知足的快乐