1

Pythonを学び始めたばかりで、小さな問題に遭遇しました。テキストファイル、より具体的にはHTMLファイルを解析する必要があります(ただし、構文は非常に奇妙です-divs after divs after divs、特定のPDFに対するGoogleの「Viewas HTML」の結果、テキストを抽出できないようですそれはm$ワードで行われる厄介なテーブルを持っているからです)。

とにかく、私はデータをできるだけ早く必要とし、Pythonを学び始めたので、基本を学ぶことで私にもいくらか役立つと思ったので、かなり低レベルのアプローチを選択しました。

divのセットから整数のセットを取得する必要がある小さな部分を除いて、すべて完了しました。次に例を示します。

<div style="position:absolute;top:522;left:1020"><nobr>*88</nobr></div>

ここで、内部のすべての番号(この場合は「588」)を取得したいのですが<nobr></nobr>、これは非常に厄介なファイルなので、取得した番号が正しいことを確認する必要があります。そのためには、内部の番号の前に、、または<nobr></nobr>を付ける必要があります。これは自動変換のためであり、私の意見では、前にあるすべての番号を取得するのが最善の選択です。"left:1020""left:1024""left:1028"left:102[0-]

そうするために、私は使用しようとしていました:

for o in re.finditer('left:102[0-9]"><nobr>(.*?)</nobr></div>', words[index])
    out = o.group(1)

しかし、これまでのところ、そのような運はありません...どうすればそれらの数字を取得できますか?

よろしくお願いします、J。

4

1 に答える 1

1

HTMLの解析に正規表現を使用しないでください。BeautifulSoupはこれを軽く機能させます。

特定の問題については、最初の行の最後にコロンがない可能性があります。

for o in re.finditer('left:102[0-9]"><nobr>(.*?)</nobr></div>', words[index]):
    out = o.group(1)

これが問題ではない場合は、出力が期待されるとおりに、発生しているエラーを投稿してください。

于 2010-01-28T11:36:08.890 に答える