Мне нужно извлечь данные из HTML-файлов. Рассматриваемые файлы, скорее всего, генерируются автоматически. Я загрузил код одного из этих файлов в Pastebin: http://pastebin.com/9Nj2Edfv. Это ссылка на актуальную страницу: http://eur-lex.europa.eu/Notice.do?checktexts=checkbox&val=60504%3Acs&pos=1&page=1&lang=en&pgs=10&nbl=1&list=60504%3Acs% 2C&hwords=&action=GO&visu=%23texte
Данные, которые мне нужно извлечь, находятся под разными заголовками.
Вот что у меня есть на данный момент:
from BeautifulSoup import BeautifulSoup
ecj_data = open("data\ecj_1.html",'r').read()
soup = BeautifulSoup(ecj_data)
celex = soup.find('h1')
auth_lang = soup('ul', limit=14)[13].li
procedure = soup('ul', limit=20)[17].li
print "Celex number:", celex.renderContents(),
print "Authentic language:", auth_lang
print "Type of procedure:", procedure
Все данные хранятся локально, поэтому он открывает файл ecj_1.html.
Номер Celex и язык Authentic работают довольно хорошо.
celex возвращает
"Celex number:
61977J0059"
auth_lang возвращает "Аутентичный язык:
Мне нужно только содержимое тега h1 (без разрыва в конце).
[Кроме того, мне нужно, чтобы auth_lang возвращал только "французский", а не -теги.]
Это больше не проблема. Я понял, что могу просто добавить «.text» в конец «auth_lang».
Процедура, с другой стороны, возвращает это:
Type of procedure:
Type of procedure:
Reference for a preliminary ruling
, что совершенно неверно, так как мне просто нужно вернуть "Ссылку на предварительное решение".
Можно ли как-нибудь добиться этого?
Второе редактирование:
Я заменил celex = суп.найти('h1')
на celex = суп('h1', limit=2)[0]
и добавил .текст
на печать celex.