Python:re.findall, HTMLから文字列を抽出するのに便利。

HTMLから文字列を抽出するときに、re モジュールの findall() を使うと便利ですね。

特にリンク文字列を抽出したいときに重宝しています。
例えば、次のようなリスト要素の中に A要素が入っている場合。

<li><span class="span"><a href="#%E3%82%A2%E3%82%AB%E3%83%9A%E3%83%A9">アカペラ</a></span></li>

次のように括弧で抽出したい部分を指定すると、その部分の文字列のリストを取得できます。

matchlist = re.findall('<a .+">(.+)</a>',html)

re.findall() では、括弧の使い方によって、返されるリストの内容が変わります。
0)括弧がない場合
  マッチした部分のリスト
  ['<a href="#a">A</a>','<a href="#b">B</a>:' ]
1)括弧が1つの場合
  マッチした部分の括弧内の文字列のリスト
  ['A','B' ]
2)括弧が2つ以上の場合
  括弧の順番によるタプルのリスト
  [('#a','A'),('#b','B') ]
(例)re.findall('<a href="(.*)">(.+)</a>',html)