Extracció adreces html

El format html és àmpliament utilitzat per als fitxers web. Es tracta de fitxers de text que, entre d’altres coses, contenen etiquetes per a estructurar el contingut i relacionar-se amb d’altres fitxers. Volem dissenyar un programa capaç de llegir un fitxer html i extreure’n tots els enllaços URL que conté a d’altres pàgines web.

Un enllaç URL en un fitxer html hi apareix com una cadena de caràcters

`` ``

o bé com

`` ``

essent url l’adreça d’una pàgina web i marca un text qualsevol. Un exemple:

<html>
<body>
Example page.
<p>
<a href="http://www.pdimension.net/">HTML Tutorial</a>.
</p>
<a href="http://www.w3schools.com/html_links.htm#tips">W3 Schools : tips<a>
<p>
<a href="http://www.google.com/">Google</a>
</p>
<a href="http://www.w3schools.com/html_links.htm"> W3 Schools</a>
<ul>
<li>Coffee</li>
<li>Milk</li>
</ul>
</body>
</html>

Dissenyeu una funció que donat el nom d’un fitxer de text que està en format html, retorni una llista amb totes les URL a les quals enllaça el fitxer. Tingueu en compte que aquesta llista no pot contenir URL repetides. Si el fitxer d’entrada fos el de l’exemple anterior, la funció retornaria la llista

['http://www.pdimension.net/', 'http://www.w3schools.com/html_links.htm', 'http://www.google.com/']

(o una d’equivalent: l’ordenació de les url dins la llista és indiferent).