我有一個用例告訴,當一個標籤是link
,它的屬性是rel=dns-prefetch
和prefetch
然後只是說,預先解析dns啓用。如何使此代碼通用
我做了一個標誌爲pre_resolve_dns_enabled
並將其設置爲true,如下所示。
class Extractor(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.pre_resolve_dns_enabled = False
def feed(self, data):
HTMLParser.feed(self,data)
def handle_starttag(self, tag, attrs):
if tag == 'link' and ('rel', 'dns-prefetch') in attrs:
self.pre_resolve_dns_enabled = True
if tag == 'link' and ('rel', 'prefetch') in attrs:
self.prefetch_enabled = True
而且我寫了兩種方法來返回狀態。
def is_pre_resolve_dns_enabled(self):
return self.pre_resolve_dns_enabled
def is_prefetch_enabled(self):
return self.prefetch_enabled
有沒有一種辦法可以有效地使handle_starttag
方法通用的,所以,我沒有硬編碼的標籤和查詢這樣的attars和擺脫is_pre_resolve_dns_enabled
和is_prefetch_enabled
。
你有沒有想過使用第三方庫? – 2014-12-19 09:39:29
我正在考慮在這裏使用美麗的湯 – station 2014-12-19 10:19:41
您正在檢查哪個標籤?根標籤? – 2014-12-19 10:26:53