全部博文(2065)
分类: Python/Ruby
2010-04-07 00:04:18
在程序中中导入 Beautiful Soup库:
from BeautifulSoup import BeautifulSoup # For processing HTML
from BeautifulSoup import BeautifulStoneSoup # For processing XML
import BeautifulSoup
笔记:目前使用
from
BeautifulSoup import BeautifulSoup
示例代码
from BeautifulSoup import BeautifulSoup
import re
doc = ['
' This is paragraph one.',
' This is
paragraph two.',
'']
soup = BeautifulSoup(''.join(doc))
请看相关的输出:
print soup.contents[0].name
下面是一些方法搜索soup,获得特定标签或有着特定属性的标签!类似于正则匹配处理
print soup.html.head.title #
找到特定的HTML标签出来。即
titleTag = soup.html.head.title
print
titleTag.string #Page title
笔记:这个表示 当前这个标签其标签体里面的字符内容!
print len(soup('p')) #表示p标签共有多少个 计算
不计算print soup.findAll('p', align="center")
笔记:作用提取的标签体。即指定标签并且包含了指定的属性内容
返回的是一个序列[] 然后可以对其进行解析处理!
[ This is paragraph
one. This is paragraph
two.
标签与标签的内容!
print soup.find('p',
align="center")
笔记:这表示返回 符合一条记录的。
This is paragraph one.
print soup('p',
align="center")[0]['id']
笔记:返回p标签并且包含align=”center” 的标签~ 的id 属性值!
print soup.find('p', align=re.compile('^b.*'))['id']
笔记:可以对这个参数做一个简单的正则处理。
print soup.find('p').b.string
笔记: 表示将第一个P标签提取出来之后其内部的b标签里面的字符串内容!
print soup('p')[1].b.string
笔记: 表示第二个P里面的内部的B标签的字符串内容!标签从0开始
实战:
解析GOOGLE问答页面的相关数据记录
齐齐哈尔哪家男科医院最好? [ ]
悬赏点数 5 该提问已被关闭 2个回答 63次浏览
即标题、标签、点数、状态、回答个数、浏览个数
分析特征:
标题: 只需要找到相应的特征就可以解决! 二、编码部分 当你的文档被剖析之后,它就自动被转换为unicode。
Beautiful Soup 只存储Unicode字符串。 http://www.crummy.com/software/BeautifulSoup/documentation.zh.html#Parsing%20HTML 利用这个框架明天将正则重写!