可能性の重複:
Parsing HTML in Pythonhtmlファイルを解析し、Pythonを使ってタグ間にあるテキストを取得する方法は?
私は、Pythonを使用して、タグの間にあるテキストを取得するために、インターネット上でより多くの上で検索しました。皆さんは説明していただけますか?
可能性の重複:
Parsing HTML in Pythonhtmlファイルを解析し、Pythonを使ってタグ間にあるテキストを取得する方法は?
私は、Pythonを使用して、タグの間にあるテキストを取得するために、インターネット上でより多くの上で検索しました。皆さんは説明していただけますか?
上記のコメントのリンクに含まれているhtmlparserは、おそらくより堅牢な方法です。あなたが特定のタグの間にあるコンテンツの単純なビットを持っている場合しかし、あなたはregular expressions
import re
html = '<html><body><div id='blah-content'>Blah</div><div id='content-i-want'>good stuff</div></body></html>'
m = re.match(r'.*<div.*id=\'content-i-want\'.*>(.*?)</div>', html)
if m:
print m.group(1) # Should print 'good stuff'
私は、正規表現を使ってHTMLを解析するのには同意しません。あなたのコードは最も簡単な例でしか動かない。 divに(クラスのような)他の属性があれば、失敗します。 divのテキストに '>'が含まれていると、失敗します。非現実的に単純な例以外は、正規表現では十分ではありません。 http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – murgatroid99
はい、HTMLパーザーライブラリは方法です。しかし、固定HTML形式から読んだり、組み込みのPythonライブラリ以外のものがない状況があるかもしれません。上記の場合、私が修正したコードはうまくいくはずです。はい、それはHTMLパーザーほど堅牢ではないので、私の答えの最初の行です。 – arunkumar
をここで使用することができますHTMLを解析するためにBeautifulSoupを使用した例である:
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup("""<html><body>
<div id="a" class="c1">
We want to get this
</div>
<div id="b">
We don't want to get this
</div></body></html>""")
print soup('div', id='a').text
これは
We want to get this
を出力
Uhm、http://docs.python.org/library/htmlparser.html? –
またはhttp://www.crummy.com/software/BeautifulSoup/documentation.htmlまたはhttp://lxml.de/ – agf
またはhttp://stackoverflow.com/questions/6870446/whats-the-most-forgiving- html-parser-in-pythonまたはhttp://stackoverflow.com/questions/5120129/python-html-parsingまたはhttp://stackoverflow.com/questions/4895102/python-html-parsingまたはhttp:// stackoverflowを参照してください。 com/questions/2505041/best-library-to-parse-html-with-python-3と例 – agf