Python HTMLParser ตรวจจับจุดสิ้นสุดของข้อมูล

ฉันใช้ไลบรารี HTMLParser ของ Python 2.7 เพื่อประมวลผลและแยกข้อมูลบางส่วนจากเนื้อหา HTML ซึ่งดึงมาจาก URL ระยะไกล ฉันไม่ค่อยเข้าใจวิธีการรู้หรือจับช่วงเวลาที่แน่ชัดเมื่ออินสแตนซ์ parser แยกวิเคราะห์ข้อมูล HTML เสร็จสิ้น

การใช้งานพื้นฐานของคลาส parser ของฉันมีลักษณะดังนี้:

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()

คำถามของฉันคือ ฉันจะตรวจสอบได้อย่างไรว่ากระบวนการแยกวิเคราะห์เสร็จสิ้นแล้ว

ขอบคุณ.


person ozgur    schedule 20.05.2014    source แหล่งที่มา


คำตอบ (1)


HTMLParser เป็นแบบซิงโครนัส กล่าวคือ เมื่อส่งคืนจาก feed ข้อมูลทั้งหมดจนถึงขณะนี้จะถูกแยกวิเคราะห์และเรียกการเรียกกลับทั้งหมด

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

(หากฉันเข้าใจคำถามของคุณผิดโปรดแจ้งให้เราทราบ)

person georg    schedule 20.05.2014