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条件式就永远不会成立,谢谢