3 件 見つかりました。
HTMLなどでは
üなどの実体参照でヘンテコめな文字を表現する場合がある。これを機械的に通常文字に変換したい。
import htmlentitydefs g = lambda match: unichr(htmlentitydefs.name2codepoint[match.group(1)]) mystring = re.sub(u'&(.+?);', g, mystring)
[2007-12-14-1]に、pythonで正規表現HTMLからアンカー(リンク)を抽出する方法をメモした。
我ながら不恰好なスクリプトだなと思っていたが、案の定もっと洗練された方法があった。
import re s = open('hoge.html', 'r').read() reg = re.compile(r'<a href="(\S+?\.pdf)">(.+?)</a>') for r in reg.finditer(s): print 'wget %s' % r.group(1)
あるWeb pageを開いたら、リンクが一杯張られていて、リンク先全てをダウンロードしたい、という状況がある。
そのためには<a href>のリンクアンカーの中身を正規表現を使って拾い上げ、それらをwgetに喰わせるのが一般的な作戦である(と思う)。
pythonでこれを行ったのでメモ。下記は、pdfへのリンクのみを抽出している。
import re fname = "hoge.html" f = open(fname, 'r') str = f.read() regexp = r'<a href="(\S+?\.pdf)">(.+?)</a>' reg = re.compile(regexp) pos = 0 while True: r = reg.search(str, pos) if not r: break print 'wget %s' % r.group(1) # print 'name: %s' % r.group(2) pos = r.end()
ChangeLog INDEX