Извлечение данных из HTML-файлов с помощью BeautifulSoup и Python

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

  • 13
    задан A2D2 20 March 2012 в 13:31
    поделиться