Мне нужно извлечь данные из 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
в print celex.