--------(--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2012-05-06(Sun)

Python BeautifulSoupを使ってみた(2)

前回のPython BeautifulSoupを使ってみた(1)でタグを指定して出力できたが
実際の用途としては、文字だけを抜き出したい。

いろいろ調べたが、先人の手によりすでに解決してくださっているので
そのまま利用させていただく。


こちらBeautifulSoupでタグを除去してテキストだけ抜き出すを参考にさせていただきました。
http://python.g.hatena.ne.jp/y_yanbe/20081025/1224910392

import sys
import os
import logging
import urllib2
from BeautifulSoup import BeautifulSoup, NavigableString, Declaration, Comment

def getNavigableStrings(soup):
if isinstance(soup, NavigableString):
if type(soup) not in (Comment, Declaration) and soup.strip():
yield soup
elif soup.name not in ('script', 'style'):
for c in soup.contents:
for g in getNavigableStrings(c):
yield g

if __name__ == "__main__":
try:
# logging.getLogger().setLevel(logging.ERROR)
logging.getLogger().setLevel(logging.DEBUG)
argvs = sys.argv
url = argvs[1]
soup = BeautifulSoup(urllib2.urlopen(url), convertEntities="html")
text = '\n'.join(getNavigableStrings(soup))
print text.encode('UTF-8')
except:
print sys.exc_info()

実行してみる。
$ python start_soup.py http://kumagonjp2.blog.fc2.com/blog-category-9.html
FC2ブログへようこそ!
最新記事
IAMのAccess Policy Languageをいじる(1) (04/29)
Google AnalyticでSocial Button Tracking (04/28)
ゲーミフィケーションってなに? (04/21)
[Errno 256] No more mirrors to try CentOS yum update時 (04/18)
.....................

ちゃんととれてます。
あらためてyieldは便利だ。




参考:
BeautifulSourp公式ホームページ


関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

コメント

プロフィール

kumagonjp2

Author:kumagonjp2
Python,Django,R,Mongo,MySQL,Struts,Spring,データマイニングなどサーバー関係のメモを残していきます。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
雪が3Dで降るブログパーツ ver2

マウスで見る方向変えられます

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。