Potrzebuję wyodrębnić dane z plików HTML. Te pliki są najprawdopodobniej generowane automatycznie. Przesłałem kod jednego z tych plików do Pastebin: http://pastebin.com/9Nj2Edfv. To jest łącze do rzeczywistej strony: 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=%23texteWyodrębnianie danych z plików HTML za pomocą BeautifulSoup i Python
Dane, które muszę wyodrębnić, znajdują się pod różnymi nagłówkami.
To, co mam tak daleko:
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
Mam wszystkie dane przechowywane lokalnie, który jest przyczyną tego, że otwiera ecj_1.html pliku.
Numer Celex i język Autentyczny działają trochę dobrze.
Celex zwraca
"Celex number:
61977J0059"
auth_lang zwraca "Authentic language: <li>French</li>"
Muszę tylko zawartość znacznika H1 (nie przerwie na końcu).
[Również muszę auth_lang powrócić po prostu "francuski", a nie <li>
-tags.] To nie jest już problemem. Zdałem sobie sprawę, że mogę dodać ".text" na końcu "auth_lang".
Postępowanie z drugiej strony zwraca to:
Type of procedure: <li>
<strong>Type of procedure:</strong>
<br />
Reference for a preliminary ruling
</li>
co jest całkiem źle, jak po prostu trzeba go do powrotu „Wniosek o wydanie orzeczenia”.
Czy mogę to osiągnąć?
Druga edycja: Wymieniłem celex = soup.find('h1')
z celex = soup('h1', limit=2)[0]
i dodał .text
do CELEX druku.
Fraxel: Dziękuję bardzo! To działa jak urok. Chodzi o to, aby w jakiś sposób przenieść dane wyjściowe tego pliku do bazy danych. Sądzę, że być może rozwiązałeś przyszły problem, kiedy pokazałeś mi, jak pozbyć się nowych linii, ponieważ mogą później coś zepsuć. Jeszcze raz dziękuję! – A2D2