0

Web 上の何百万ものリソースを読んで、py で行う必要があることを行うには多くの方法があると信じているため、助けになるよりも混乱しています。

ですから、Python の達人が私に手を貸してくれることを願っています。

私がする必要があるのは次のとおりです。

  • ユーザーに入力を求める [INPUT]
  • html ファイルを開きます (シンプルで大きすぎないもの)
  • 検索する<a target="_top" href="http://website">Local website</a>
  • http://website(決して同じ文字列ではない) を [INPUT] に置き換えます。
  • ファイルを書き込みます(同じファイルを開いたとき)

さて、私が正しく理解していれば、Python内で正規表現を使用する必要がありますが、これは正しいですか?

私の疑似コード(申し訳ありませんが、ひどいように見えます)は次のようになります。

var = raw_input("Enter input: ")
print var, "will be the new site"

import re
o = open("test.html","w")
data = open("test.html").read()
o.write( re.sub("<a target="_top" href="(*)">Local website</a>",var,data) )
o.close()

上記はおそらくこれを行う最良の方法ではありませんが、正規表現の部分がなくても機能し、単純な一致置換を行います (一致は常に同じです)。

皆さんからのヒントはありますか?

4

1 に答える 1

0

あなたのコードはかなり良さそうです。少しだけ変えました。あなたのコードは機能しているように見えるので、あなたの質問が何であるかについてはあまり明確ではありませんでした。それが役に立てば幸い:

import re

INFILE = 'test.html'
OUTFILE = 'replaced.html'

new_site_name = raw_input('Enter input: ')
print new_site_name, 'will be the new site.'

pattern = '<a .* href="(.+)">.+</a>'
replacement = '<a target="_top" href=%s>Local website</a>'  % new_site_name

with open(INFILE, 'r') as f:
    html_text = f.read()

with open(OUTFILE, 'w') as f:
    f.write(re.sub('<a .* href="(.+)">.+</a>', replacement, html_text))
于 2013-11-13T06:22:04.590 に答える