Мне нужно извлечь данные из 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 и Аутентичный язык работают несколько хорошо.
celex возвращает
"Celex number:
61977J0059"
auth_lang возвращает "Authentic language: <li>French</li>"
Мне нужно только содержимое тега h1 (не разрыв в конце).
[Также мне нужно, чтобы auth_lang возвращал только «французский», а не <li>
-tags.] Это больше не проблема.Я понял, что могу просто добавить «.text» в конец «auth_lang».
Процедура, с другой стороны, возвращает это:
Type of procedure: <li>
<strong>Type of procedure:</strong>
<br />
Reference for a preliminary ruling
</li>
, что совершенно неправильно, так как япросто нужно вернуть «Ссылка на предварительное решение».
Есть ли способ, которым я могу добиться этого?
Второе редактирование: я заменил celex = soup.find('h1')
на celex = soup('h1', limit=2)[0]
идобавлен .text
к принтеру celex.