FrontPage  Index  Search  Changes  RSS  Login

[python]HTML関連

HTMLエスケープ

>>> from xml.sax.saxutils import escape
>>> escape('''<html>& " '</html>''')
'&lt;html&gt;&amp; " \'&lt;/html&gt;'

BeautifulSoup

インストール

$ wget http://www.crummy.com/software/BeautifulSoup/download/BeautifulSoup.tar.gz
$ tar xvzf BeautifulSoup.tar.gz
$ cd BeautifulSoup-3.0.3
$ sudo python setup.py install

サンプル

コード
# -*- coding: utf-8 -*-
import urllib2
import re
from BeautifulSoup import BeautifulSoup

html = urllib2.urlopen('http://blog.koshigoe.jp/')
soup = BeautifulSoup(html)

# エンコーディングを取得
print soup.originalEncoding

# A要素のhref属性を抽出
for a_tag in soup.findAll('a'):
    print a_tag['href']

# 属性を指定して要素を抽出
for module_header in soup.findAll('h2', attrs={'class': 'module-header'}):
    print module_header.contents[0]

# 正規表現を利用してh?要素を抽出
for header_tag in soup.findAll(re.compile('h\d')):
    print header_tag
実行例
$ python sample_beautifulsoup.py
utf-8
http://blog.koshigoe.jp/
http://blog.koshigoe.jp/archives/2007/02/pythonrssatom.html
http://cheeseshop.python.org/pypi
http://feedparser.org/
http://w.koshigoe.jp/study/?%5Bpython%5DRSS%2FAtom%B4%D8%CF%A2
http://blog.koshigoe.jp/mt-search.cgi?tag=feed&amp;blog_id=3
http://blog.koshigoe.jp/mt-search.cgi?tag=python&amp;blog_id=3
http://blog.koshigoe.jp/
http://blog.koshigoe.jp/archives/2007/02/pythonrssatom.html
http://blog.koshigoe.jp/archives/2007/02/pythonrssatom.html#comments
http://blog.koshigoe.jp/archives/2007/02/pythonrssatom.html#trackback
http://w.koshigoe.jp/study/
http://hiki.koshigoe.jp/
http://wiki.koshigoe.jp/
http://del.icio.us/koshigoe
http://blog.koshigoe.jp/archives/2007/02/pythonrssatom.html
http://blog.koshigoe.jp/archives/2007/02/django.html
http://blog.koshigoe.jp/archives/2007/02/terminalapp.html
http://blog.koshigoe.jp/archives/2007/02/ruby_4.html
http://blog.koshigoe.jp/archives/2007/02/iterm.html
http://blog.koshigoe.jp/archives/2007/02/post_260.html
http://blog.koshigoe.jp/archives/2007/02/python.html
http://blog.koshigoe.jp/archives/2007/02/scplugin.html
http://blog.koshigoe.jp/archives/2007/02/virtualdesktops.html
http://blog.koshigoe.jp/archives/2007/02/opera.html
http://blog.koshigoe.jp/archives/life/
http://blog.koshigoe.jp/archives/neta/
http://blog.koshigoe.jp/archives/tech/
http://blog.koshigoe.jp/archives/work/
http://blog.koshigoe.jp/archives.html
http://blog.koshigoe.jp/archives/2007/02/
http://blog.koshigoe.jp/archives/2007/01/
http://blog.koshigoe.jp/archives/2006/12/
http://blog.koshigoe.jp/archives/2006/11/
http://blog.koshigoe.jp/archives/2006/10/
http://blog.koshigoe.jp/archives/2006/09/
http://blog.koshigoe.jp/archives/2006/08/
http://blog.koshigoe.jp/archives/2006/07/
http://blog.koshigoe.jp/archives/2006/06/
http://blog.koshigoe.jp/archives/2006/05/
http://blog.koshigoe.jp/archives/2006/04/
http://blog.koshigoe.jp/archives/2006/03/
http://blog.koshigoe.jp/archives/2006/02/
http://blog.koshigoe.jp/archives/2006/01/
http://blog.koshigoe.jp/archives/2005/12/
http://blog.koshigoe.jp/archives/2005/11/
http://blog.koshigoe.jp/archives/2005/10/
http://blog.koshigoe.jp/archives/2005/09/
http://blog.koshigoe.jp/archives/2005/08/
http://blog.koshigoe.jp/archives/2005/07/
http://blog.koshigoe.jp/archives/2005/06/
http://blog.koshigoe.jp/archives/2005/05/
http://www.sixapart.jp/movabletype/
いろいろ
最近のエントリー
カテゴリー
<a href="http://blog.koshigoe.jp/archives.html">アーカイブ</a>
<h1 id="banner-header"><a href="http://blog.koshigoe.jp/" accesskey="1">KoshigoeBLOG</a></h1>
<h2 id="banner-description">web周辺、mac周辺、php周辺、とか。</h2>
<h2 class="date-header">2007&#24180;02&#26376;17&#26085;</h2>
<h3 class="entry-header"><a href="http://blog.koshigoe.jp/archives/2007/02/pythonrssatom.html">PythonのRSS/Atomパーサのデファクトは何?</a></h3>
<h4 class="entry-tags-header">タグ:</h4>
<h2 class="module-header">いろいろ</h2>
<h2 class="module-header">最近のエントリー</h2>
<h2 class="module-header">カテゴリー</h2>
<h2 class="module-header"><a href="http://blog.koshigoe.jp/archives.html">アーカイブ</a></h2>
Last modified:2007/04/22 20:42:03
Keyword(s):[python]
References: