SORU
15 NİSAN 2009, ÇARŞAMBA


Şerit Python dizeleri HTML

from mechanize import Browser
br = Browser()
br.open('http://somewebpage')
html = br.response().readlines()
for line in html:
  print line

Bir HTML dosyasına bir satır yazdırırken, sadece her HTML elemanının içeriğini ve biçimlendirmesini kendisini göstermek için bir yol bulmaya çalışıyorum. '<a href="whatever.com">some text</a>', sadece yazacaktır bulursa 'metin', '<b>hello</b>' parmak izi 'Merhaba', vb. Bunu nasıl yapıyor hakkında gitmek istiyorsunuz?

CEVAP
29 Mayıs 2009, Cuma


Ben her zaman sadece Python stdlib gerektirir bu fonksiyon HTML etiketleri şerit için kullanılır:

Python 2 Üzerinde

from HTMLParser import HTMLParser

class MLStripper(HTMLParser):
    def __init__(self):
        self.reset()
        self.fed = []
    def handle_data(self, d):
        self.fed.append(d)
    def get_data(self):
        return ''.join(self.fed)

def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

Python 3 İçin

from html.parser import HTMLParser

class MLStripper(HTMLParser):
    def __init__(self):
        self.reset()
        self.strict = False
        self.convert_charrefs= True
        self.fed = []
    def handle_data(self, d):
        self.fed.append(d)
    def get_data(self):
        return ''.join(self.fed)

def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

Notbu sadece 3.1 için çalışıyor. 3.2 veya üstü, üst sınıfın aramalısınınitişlevi. Using HTMLParser in Python 3.2 bkz

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Thehalopianoplayer

    Thehalopiano

    4 ŞUBAT 2011
  • WePlayWeWatch

    WePlayWeWatc

    3 Temmuz 2013
  • Wii Minute Radio

    Wii Minute R

    31 Mayıs 2008