import urllib.request
from html.parser import HTMLParser
class MyHTMLParser(HTMLParser): #orverride方法來做條件判斷
def __init__(self):
HTMLParser.__init__(self)
self.isNumber= 0
self.list= [ ]
def handle_data(self, data):#解析網頁資料
if self.isNumber== 1:
#print('有資料')
self.list.append(data)
self.isNumber= 0
def handle_starttag(self, tag, attrs):#解析網頁起始標籤
if tag == 'a' and attrs == [('target','_blank')]:
#print('有屬性')
self.isNumber= 1
def handle_endtag(self, tag):#解析網頁結束標籤
pass
data = urllib.request.urlopen('https://tw.yahoo.com/')#向網頁發出請求
content = data.read().decode('utf-8')#擷取網頁資料
data.close( )#關閉連線
#print(content)
myparser = MyHTMLParser()
myparser.feed(content)#feed()會依 HTML文件內標籤的順序依序處理
#print(myparser.list)
print(myparser.list ,file=open('data.txt','w',encoding='utf-8'))#寫入data.txt'
程式碼如上,我想請問為何我在handle_starttag的function裡面
只要加上attrs == [('target','_blank')]的描述,我的if條件式就永遠不會成立,謝謝