データの取得/入力プロジェクトがあり、Web ページの特定の部分を抽出してテキスト ファイルに保存したいと考えています。URL のテキスト ファイルがあり、プログラムは各 URL のページの同じ部分を抽出することになっています。
具体的には、プログラムは、このようなページの「法的権限:」に続く法的法令をコピーします。ご覧のとおり、リストされている法令は 1 つだけです。ただし、一部の URL はこのようにも見えます。これは、複数の別個の法令があることを意味します。
私のコードは、最初の種類のページで機能します。
from sys import argv
from urllib2 import urlopen
script, urlfile, legalfile = argv
input = open(urlfile, "r")
output = open(legalfile, "w")
def get_legal(page):
# this is where Legal Authority: starts in the code
start_link = page.find('Legal Authority:')
start_legal = page.find('">', start_link+1)
end_link = page.find('<', start_legal+1)
legal = page[start_legal+2: end_link]
return legal
for line in input:
pg = urlopen(line).read()
statute = get_legal(pg)
output.write(get_legal(pg))
「legalfile」出力 .txt で目的の法令名を教えてください。ただし、複数の法令名をコピーすることはできません。私はこのようなことを試しました:
def get_legal(page):
# this is where Legal Authority: starts in the code
end_link = ""
legal = ""
start_link = page.find('Legal Authority:')
while (end_link != '</a> '):
start_legal = page.find('">', start_link+1)
end_link = page.find('<', start_legal+1)
end2 = page.find('</a> ', end_link+1)
legal += page[start_legal+2: end_link]
if
break
return legal
法令のすべてのリストは'</a> '
(inspect the source of either of the two links) で終わっているので、その事実 (それをインデックスの末尾として持つ) を使用して、すべての法令を 1 つの文字列にループして収集できると考えました。何か案は?