HTML etiketlerini filtreleyin ve piton varlıkları çözmek

oy
16

düzenli ifadeler beni korkutmaya Çünkü Python içinde bir dize HTML varlıkları tüm HTML etiketlerini kaldırmak ve çözmek için bir yol bulmaya çalışıyorum.

Oluştur 01/09/2008 saat 04:25
kaynak kullanıcı
Diğer dillerde...                            


8 cevaplar

oy
4

Nasıl HTML verilerin ayrıştırılması ve ayrıştırıcı yardımıyla veri ayıklama hakkında?

Ben tarif yazar gibi bir şey denemek istiyorum Dive Into Python kitapta bölüm 8.3

Cevap 01/09/2008 saat 04:35
kaynak kullanıcı

oy
6

Ben düzenli ifadeler bütün bu korkutucu olmadığını Lucas ile kabul ederken, ben hala özel bir HTML ayrıştırıcı ile gitmek gerektiğini düşünüyorum. HTML standardı (eğer keyfi "HTML" sayfaları internete çıkarmış ayrıştırmak istediğiniz özellikle) Eğer köşe davalarına bakacak bir sürü kod yazmak gerekir yeterince kıllı olmasıdır. O görünüyor piton kutudan birini içerir .

Ayrıca kontrol etmelidir TidyLib için piton bağlantıları çok daha yüksek ayrıştırma herhangi HTML başarı oranını yapma, kırık HTML temizleyebilir.

Cevap 01/09/2008 saat 04:49
kaynak kullanıcı

oy
1

Bir düzenli ifade daha karmaşık bir şey gerekebilir. Web sayfaları genellikle böyle bir etiket, bir parçası olmayan açılı ayraç vardır:

 <div>5 < 7</div>

regex ile etiketleri soyma dizesini "5" dönmek ve tedavi edecek

 < 7</div>

tek bir etiket olarak ve onu atar.

Bunu senin için yapar zaten yazılmış kod araştırılmasını önermektedir. Bir arama yaptım ve buldum: http://zesty.ca/python/scrape.html Ayrıca HTML öğelerini çözebilirsiniz.

Cevap 01/09/2008 saat 04:50
kaynak kullanıcı

oy
15

Kullanım BeautifulSoup ! Eğer şüpheli erdem gelen biçimlendirme var ve bunun dışında makul bir şey almak gerekir nerede, bunun için mükemmeldir. Sadece, orijinal metinde geçmesi tüm dize etiketlerini ayıklamak ve onlara katılın.

Cevap 01/09/2008 saat 04:53
kaynak kullanıcı

oy
40

Kullanım LXML piton en iyi xml / html kütüphanesidir.

import lxml.html
t = lxml.html.fromstring("...")
t.text_content()

Ve sadece lxml.html.clean de html göz sterilize etmek istiyorsanız modül

Cevap 01/09/2008 saat 05:07
kaynak kullanıcı

oy
0

Normal ifadeler korkutucu değildir, ancak HTML şerit kendi Regexes yazma (ve o işe yaramaz ya) çılgınlığa emin bir yoldur. bilgelik yolunu izleyin ve birçok iyi HTML ayrıştırma kütüphanelerin birini kullanın.

'Alt' bir Python dize yöntem değildir, çünkü Lucas'ın örnek de bozuldu. Sen "ithal yeniden" ise re.sub (desen, repl, dize) demelisiniz. Sorunuzun doğru cevap herhangi Regexes yazma içermeyen olarak Ama bu, ne burada ne var.

Cevap 01/09/2008 saat 07:15
kaynak kullanıcı

oy
0

Duyu insanların miktarı baktığımızda muhtemelen bir regex kullanarak durumunuza en iyi fikir olmadığını söyleyebilirim, burada diğer yanıtlar gösteriyorlar. Denenmiş ve test edilmiş bir şey için gidin ve regexes ihtiyaç olmayacak bir gösteri olarak önceki cevabı tedavi olduğunu korkutucu.

Cevap 01/09/2008 saat 23:11
kaynak kullanıcı

oy
2

Eğer kullanırsanız, ayrıca kullanabilirsiniz django http://docs.djangoproject.com/en/dev/ref/templates/builtins/#striptags ;)

Cevap 28/02/2011 saat 14:51
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more