逗人,
我需要在字符串数组
中收集以下HTML中的数据parser.feed( <table><tr><td><a href="https://rads.stackoverflow.com/amzn/click/com/B00JX1ZS5O" rel="nofollow noreferrer" target="_blank"><img src="https://images-na.ssl-images-amazon.com/images/I/41B39oDSGQL._SL160_.jpg" alt="Product Image" style='border:0'/></a></td><td><tr><td>List Price: <strike>$34.99</strike></td></tr><tr><td><b>Deal Price: $7.99</b></td></tr><tr><td>You Save: $2.00 (20%)</td></tr><tr><td>Sabrent 4-Port USB 3.0 Hub with Individual Power Switches and LEDs (HB-UM43)</td></tr><tr><td>Expires Jun 15, 2017</td></tr></td></tr></table>)
所以我使用了以下但是
class MyHTMLParser(HTMLParser):
def handle_data(self, data):
self.Datacollected(data)
return (data)
parser = MyHTMLParser()
Collector=[]
Collector.append[parser.feed("HTML Code HERE")]
但它始终为空
答案 0 :(得分:1)
feed
方法一次解析一个HTML元素,并将其交给handle_data
方法。 feed的返回值为None
,这就是您的列表为空的原因。如果要将所有数据保存到解析器中,则需要在__init__()
方法中添加一些数据结构,如list
,在handle_data
方法中将数据包含在其中,并实现另一种返回数据的方法,例如:
class MyHTMLParser(HTMLParser):
def __init__(self, **kwargs, *args):
self.d = []
super().__init__()
def handle_data(self, data):
self.d.append(data)
return (data)
def return_data(self):
return self.d
collector=[]
parser = MyHTMLParser()
parser.feed("HTML Code HERE")
collector.append(parser.return_data())