作者yoco315 (眠月)
看板Python
标题Re: [讨论] HTML/XML processing tools
时间Thu Sep 13 17:35:40 2007
※ 引述《seLain (建筑的永恒之道)》之铭言:
: 板上文章好少 ^^b
: 想看看有没人想讨论一下 Python 的 HTML/XML processing tools,
: 因为不久之後可能会用到, 想看看最近一两年是否有比较好用的 tools 出现.
: 我自己两年前刚开始接触 Python 时是用 BeautifulSoup [1], 用来写程式
: 抓取 SourceForge.net 上的资料作分析 (小抱怨 SF.net 的网页程式码不太标准),
: 後来写的关於处理 XML 的都是小程式, 则有改用过 ElementTree [2],
: 不知道是否有板友可以推荐其他好用的 tools, 使用经验等等, thanks.
: (如果有特殊的 data model 最好, 想看看除了 tree model 之外还可以怎样处理)
: References
: [1] BeautifulSoup, URL : http://www.crummy.com/software/BeautifulSoup/
: [2] ElementTree, URL : http://effbot.org/zone/element-index.htm
我都是用 BeautifulSoup,觉得非常好用了 O_O
有一定程度的容错,虽然还没有到浏览器强度,
但是配合一下 re 前处理或是自订规则几乎都可以处理了。
语法用起来也非常简单。
像这样的一个 html
<html>
<head>Title Text</head>
<body>
<a href="
http://www.google.com">
<b> Google </b>
</a>
<table>
<tr>
<td> TD1 </td>
<td> TD2 </td>
<td>
<a href="
http://www.yahoo.com">
Yahoo!
</a>
<td>
</table>
</body>
<html>
用
soup.body.a['href'] 可以取得 '
http://www.google.com'
soup.body('a') 可以取得所有的 a tag 的 list
soup.table.tr('td')[2].string 就可以拿到 'Yahoo!' 字串
不太会用的话,可能会用
soup.find('table').find('td')[2].find(text) 这样就太累了 @@"
--
To iterate is human, to recurse is divine.
递回只应天上有, 凡人该当用回圈. L. Peter Deutsch
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.78.40
1F:推 Lucemia:推BeautifulSOAP! 09/14 02:25
※ 编辑: yoco315 来自: 140.114.78.40 (01/15 00:16)