\n"
content = ""
#Parsers
get_url = re.compile(".*?)\"")
get_type = re.compile(".*?)\"")
get_content = re.compile("(?P.*?)")
#Decoder: from http://snippets.dzone.com/posts/show/4569
def substitute_entity(match):
ent = match.group(2)
if match.group(1) == "#":
return unichr(int(ent))
else:
cp = n2cp.get(ent)
if cp:
return unichr(cp)
else:
return match.group()
def decode_htmlentities(string):
entity_re = re.compile("&(#?)(\d{1,5}|\w{1,8});")
return entity_re.subn(substitute_entity, string)[0]
#End http://snippets.dzone.com/posts/show/4569
# Get url entered by user from form
form = cgi.FieldStorage()
url = form["url"].value
#url = urllib2.quote_plus(url)
# Open url and read the feed
formdata = urllib2.urlopen(url)
blog = minidom.parse(formdata)
formdata.close
rootNode = blog.documentElement
#print rootNode.toxml()
for node in rootNode.childNodes:
if (node.nodeName == "title"):
for title_node in node.childNodes:
if (title_node.nodeType == node.TEXT_NODE):
print "
", title_node.nodeValue, "
"
print " "
if (node.nodeName == "entry"):
for entry_node in node.childNodes:
if (entry_node.nodeName == "title"):
for name_node in entry_node.childNodes:
if (name_node.nodeType == node.TEXT_NODE):
entry_title = name_node.nodeValue
elif (entry_node.nodeName == "link"):
match = get_url.search(entry_node.toxml())
print " ", entry_title, " "
elif (entry_node.nodeName == "author"):
for author_node in entry_node.childNodes:
if (author_node.nodeName == "name"):
for authname_node in author_node.childNodes:
if (authname_node.nodeType == node.TEXT_NODE):
print "
Author:", authname_node.nodeValue, "
"
elif (entry_node.nodeName == "content"):
match = get_type.search(entry_node.toxml())
content_type = match.groupdict()['type']
match = get_content.search(entry_node.toxml())
content = match.groupdict()['content']
if (content_type == "html"):
html_content = decode_htmlentities(content.encode("ascii"))
print "
", html_content, "
"
elif (content_type == "xhtml"):
print "
", content.encode("ascii"), "
"
else:
print "
", content.encode("ascii"), "
"
elif (entry_node.nodeName == "summary"):
if not len(content):
print "