0

HTML ページにはいくつかの既知の形式があり、タグのコンテンツを解析する必要があります

<TR>
    <TD align=center>Reissue of:</TD>
    <TD align=center> **VALUES_TO_FIND** </TD>
    <TD> </TD> 
</TR>
<TR>
    <TD align=center> </TD>
</TR>

基本的に、探しているスポット内のあらゆるものに一致する正規表現を HTML に連結できると考えました。

VALUES_TO_FIND の前後のテキストは常に同じであることはわかっています。REを使用してどのように見つけることができますか?(私はいくつかのケースを扱っており、ページ内のいくつかの場所でフォーマットが繰り返される可能性があります。

4

5 に答える 5

1

これはあなたが探しているものです:

import re

s="""
<TR>
    <TD align=center>Reissue of:</TD>
    <TD align=center> **VALUES_TO_FIND** </TD>
    <TD> </TD> 
</TR>
"""

p="""
<TR>
    <TD align=center>Reissue of:</TD>
    <TD align=center>(.*)</TD>
    <TD> </TD> 
</TR>
"""

m=re.search(p, s)
print m.group(1)
于 2012-07-02T15:09:39.397 に答える
0

HTMLは正規言語ではないため、正規表現を使用してHTMLを操作することは困難です。

BeautifulSoupは素晴らしいパーサーです。これを使用する方法の例を次に示します。

from BeautifulSoup  import BeautifulSoup 

html = u'''
<TR>
    <TD align=center>Reissue of:</TD>
    <TD align=center> **VALUES_TO_FIND** </TD>
    <TD> </TD> 
</TR>
<TR>
    <TD align=center> </TD>
</TR>'''

bs = BeautifulSoup(html)

print [td.contents for td in bs.findAll('td')]

出力:

[[u'Reissue of:'], [u' **VALUES_TO_FIND** '], [u' '], [u' ']]

あなたはここから何をすべきか知っています。:)

でインストールしpip install BeautifulSoupます。ドキュメントは次のとおりです。

http://www.crummy.com/software/BeautifulSoup/bs3/documentation.html

于 2012-07-02T13:49:25.723 に答える
0

HTML の解析に正規表現を使用しないでください (正規表現ではありません)。このトピックに関する多くのスレッドが stackoverflow にあります。

BeautifulSoup、Pattern、および同様のモジュールを使用することをお勧めします。

于 2012-07-02T11:56:40.307 に答える
0

HTML からデータを取得するには、正規表現よりも優れたオプションが多数あります。たとえば、 Scrapyを試してください。

于 2012-07-02T12:39:21.530 に答える
0

この正規表現は次のようになります。

re.findall(r'<TR>\s+<TD.+?</TD>\s+<TD align=center>(.*?)</TD>',html,re.DOTALL)

ただし、パーサーを使用することをお勧めします。

于 2012-07-02T11:58:38.653 に答える