python+BeautifulSoupでコメント含めてスクレイピングする方法

Python, ブログ・アフィリエイト, プログラミング

コメント文<!– –>で書いてある内容をスクレイピングする方法に紹介します。一度ハマりました。全然データが取れない。

文字列化+正規表現で取得

基本は、正規表現でデータを抜くのですがBeautifulSoupの戻り値のままだとオブジェクトであるため、正規表現がエラーで止まります。

オブジェクトに対して.textをとってやると欲しいところのデータが消えて、正規表現がミスヒットします。

ということで・・・

Beautifulsoupのオブジェクトを文字列化してから、正規表現で抜きとります。

soup = bs4(r.content,'lxml')
regex = r"erKokDMM:([a-zA-Z0-9]+) "
m = re.search(regex, str(soup))

if m:
  key = m.group(1)

これでrequestsのcontent内にDMMのキーが有る場合、そのキーを正規表現で取得できます。