Python HTMLParser Mendeteksi Akhir Data

Saya menggunakan perpustakaan HTMLParser Python 2.7 untuk memproses dan mengekstrak beberapa informasi dari konten HTML yang diambil dari url jarak jauh. Saya tidak begitu mengerti bagaimana mengetahui atau mengetahui momen yang tepat ketika instance parser selesai mengurai data HTML.

Implementasi dasar kelas parser saya terlihat seperti ini:

class MyParser(HTMLParser.HTMLParser):
    def __init__(self, url):
        self.url = url
        self.users = set()

    def start(self):
        self.reset()
        response = urllib3.PoolManager().request('GET', self.url)
        if not str(response.status).startswith('2'):
            raise urllib3.HTTPError('HTTP error here..')
        self.feed(response.data.decode('utf-8'))

    def handle_starttag(self, tag, attrs):
        if tag == 'div':
            attrs = dict(attrs)
            if attrs.get('class') == 'js_userPictureOuterOnRide':
                user = attrs.get("data-name")
                if user:
                    self.users.add(user)

    def reset(self):
        HTMLParser.HTMLParser.reset(self)
        self.users.clear()

Pertanyaan saya adalah, bagaimana saya bisa mendeteksi bahwa proses parsing sudah selesai?

Terima kasih.


person ozgur    schedule 20.05.2014    source sumber


Jawaban (1)


HTMLParser bersifat sinkron, artinya, setelah kembali dari feed, semua data sejauh ini telah diurai dan semua callback dipanggil.

    self.feed(response.data.decode('utf-8'))
    print 'ready!'

(jika saya salah memahami pertanyaan Anda, beri tahu saya).

person georg    schedule 20.05.2014