SORU
29 Temmuz 2012, Pazar


Ayrıştırma HTML Python

Beni/nesneleri sözlükler/Python listeler halinde etiketler almanıza yardımcı olabilir python için HTML Ayrıştırıcı bir modül arıyorum

Formun bir belge varsa:

<html>
<head>Heading</head>
<body attr1='val1'>
    <div class='container'>
        <div id='class'>Something here</div>
        <div>Something else</div>
    </div>
</body>
</html>

Bana html etiketinin adı veya kimliği ile iç içe etiketleri erişmek için bir yol vermelidir.

Temelde=sınıf ile bir div etiketi içinde içerik/metin almak isteyebileceğim'konteyner' bünyesinde tag, Ya da ona benzer bir şey. yer çok

Eğer Firefox'un eleman özelliği (HTML görünümü) kontrol kullandıysanız bir ağaç gibi güzel iç içe geçmiş bir şekilde Tüm etiketler verdiğini bilirdin.

Dahili bir modül tercih ederim ama bu biraz fazla soran olabilir.


Zaten konuştuk bir sürü Soru üzerinde stackoverflow web sitesi ve bir kaç bloglar ve internette en çok onları öneririz BeautifulSoup veya lxml veya HTMLParser(dahili) ama birkaç bu ayrıntı işlevselliği ve sadece son olarak bir tartışma içinde hangisi daha hızlı/daha verimli.

Benim gereksinimleri belirsiz anladığım kadarıyla, Eğer başka bir bilgi Varsa, lütfen sormaya çekinmeyin/gerekir.

CEVAP
29 Temmuz 2012, Pazar


Temelde=sınıf ile bir div etiketi içinde içerik/metin almak isteyebileceğim'konteyner' bünyesinde tag, Ya da ona benzer bir şey. yer çok

from BeautifulSoup import BeautifulSoup
html = #the HTML code you've written above
parsed_html = BeautifulSoup(html)
print parsed_html.body.find('div', attrs={'class':'container'}).text

Sanırım performans açıklamalar - BeautifulSoup nasıl çalıştığını okumak gerekmez. official documentation bak.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ben Vivona

    Ben Vivona

    24 Ocak 2010
  • The Verge

    The Verge

    8 AĞUSTOS 2006
  • thetrollska

    thetrollska

    2 EKİM 2009