#!/home/tjlahton/public_html/cgi-bin/ties4080/venv/bin/python # -*- coding: utf-8 -*- from xml.dom.minidom import parse import urllib.request, urllib.parse, urllib.error import sys print("Content-type: text/plain; charset=UTF-8\n") try: doc = parse( urllib.request.urlopen( "https://feeds.yle.fi/uutiset/v1/recent.rss?publisherIds=YLE_UUTISET")) # tämä hakee kaikki link-elementit, mutta ei atom:link-elementtiä links = doc.getElementsByTagName("link") h2 = doc.getElementsByTagNameNS("http://purl.org/rss/1.0/modules/content/", "encoded") # myös tämä toimii, koska käyttänee oletuksena viimeiseksi annettua nimiavaruutta # h2 = doc.getElementsByTagName("content:encoded") # seuraava ei toimi, koska on kyseessä eri nimiavaruus #links = doc.getElementsByTagName("atom:link") # tämä toimii, koska kerrotaan mistä nimiavaruudesta elementtiä haetaan links = doc.getElementsByTagNameNS("http://www.w3.org/2005/Atom", "link") for h in links: # print h try: print("atom-linkki : " + h.getAttribute("href")) except: pass print("Artikkeleiden sisältö html-elementteineen. Artikkelissa olevia elementtejä ei käsitellä dom-nodeina, koska ovat CDATA-lohkon sisällä eli niitä käsitellään vain tekstinä.") for h in h2: # print h try: pass print(h.firstChild.nodeValue) except: pass except: for err in sys.exc_info(): print(err)