Итак, у меня есть проект поиска/ввода данных, и я хочу извлечь определенную часть веб-страницы и сохранить ее в текстовом файле. У меня есть текстовый файл URL-адресов, и программа должна извлекать одну и ту же часть страницы для каждого URL-адреса.
В частности, программа копирует юридический акт, следующий за «Юридическим органом:» на таких страницах, как это. Как видите, указан только один закон. Однако некоторые 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> '
(проверьте источник любой из двух ссылок), я подумал, что могу использовать этот факт (имея его в конце индекса), чтобы пройти и собрать все статуты в одну строку. Любые идеи?
<LEGAL_AUTHORITY_LIST><LEGAL_AUTHORITY>blah1</LEGAL_AUTHORITY><LEGAL_AUTHORITY>blah2</LEGAL_AUTHORITY></LEGAL_AUTHORITY_LIST>
) - person tiwo   schedule 14.07.2012