0
我想彙總一些youtube提要,連接它們,然後解析提要。 當我自己解析單獨的feed時,我沒有任何問題,代碼似乎工作。但是,當我嘗試將提要聚合爲一個長字符串,然後使用etree.fromstring(aggregate_partner_feed)時,出現錯誤。我得到的錯誤是ParseError:未綁定的前綴和etree行(前面引用)被指定爲錯誤。有關如何解決這個問題的任何建議?如何在一個字符串中彙總供稿,然後解析它們?
aggregated_partners_list = [cnn, teamcoco, buzzfeed]
i = 1
number_of_partners = len(aggregated_partners_list)
aggregate_partner_feed = ''
for entry in aggregated_partners_list:
#YOUTUBE FEED
#download the file:
file = urllib2.urlopen('http://gdata.youtube.com/feeds/api/users/'+entry+'/uploads?v=2&max-results=50')
#convert to string:
data = file.read()
#close file because we dont need it anymore:
file.close()
if i == 1:
#remove ending </feed>
data = data[:-7]
if i>1 and i != number_of_partners:
data = data[data.find('<entry'):]
data = data[:-7]
#remove everything before first <entry> in the new feed and the last </entry>
#if last, then only remove everything before first <entry>
if i == number_of_partners:
data = data[data.find('<entry'):]
#append the current feed to the existing feed
aggregate_partner_feed += data
#increment the counter
i=i+1
print isinstance(data, basestring) #returns true
print isinstance(aggregate_partner_feed, basestring) #returns true
#apply the parsing to the aggregated feed
#entire feed
root = etree.fromstring(aggregate_partner_feed) #this is the line that give an error
#all entries
entries = root.findall('{http://www.w3.org/2005/Atom}entry')
#more code that seems to work...
您能否顯示'aggregate_partner_feed'的值? –
您可以使用etree單獨解析每個feed並將解析的條目附加到組合樹對象,而不是手動將xml作爲字符串操作 – jfs
@ J.F.Sebastian如何將解析的條目附加到組合樹對象? – sharataka