5

.htmlファイルからテキストを抽出する小さなスクリプトがあります。

f = open(local_file,"r")
for line in f:
    searchphrase = '<span class="position'
    if searchphrase in line:
        print("found it\n")

これは私にとっては問題なく機能します(エラー処理は後でインポートされます)。私の問題は、抽出したいテキストが検索フレーズの2行後に続くことです。.htmlファイルで2行下に移動するにはどうすればよいですか?

4

2 に答える 2

12

2回f呼び出すことで、2行進むことができます(反復可能です)。next()

with open(local_file,"r") as f
    for line in f:
        searchphrase = '<span class="position'
        if searchphrase in line:
            print("found it\n")
            next(f) # skip 1 line
            return next(f)  # and return the line after that.

ただし、HTMLを解析しようとしている場合は、代わりにHTMLパーサーの使用を検討してください。たとえば、BeautifulSoupを使用します。

于 2013-03-27T10:44:35.093 に答える
0

これは私にとってはうまくいきます:

f = open(local_file,"r")
found = -1
for line in f:
    if found == 2:
        print("Line: "+line);
        break
    elif found > 0:
        found += 1
    else:
        searchphrase = '<span class="position'
        if searchphrase in line:
            print("found it")
            found = 1

入力ファイルは次のとおりです。

bla
<span class="position">Hello</span>
blub
that's it
whatever

そして、プログラムの出力:

found it
Line: that's it

電話をかける代わりに、 -1にbreakリセットfoundして、パターンの出現箇所をさらに検索することもできます...

于 2013-03-27T10:47:11.713 に答える