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

  • Barnacules Nerdgasm

    Barnacules N

    20 Temmuz 2006
  • Emotional Trancer

    Emotional Tr

    4 Mart 2010
  • SRT Photoshop Tutorials

    SRT Photosho

    19 Aralık 2012