mi aiutate ad uscire da questa cosa?
Allego un frammento di codice che
-si collega alla pagina del fatto quotidiano contenente i links agli articoli del giornale odierno (in realtà quello di due giorni fa ma è uguale)
-fa delle sostituzioni per correggere errori nell'html
-scrive i link che mi interessano in una lista
Codice: Seleziona tutto
import mechanize, codecs, re, string, os,
from BeautifulSoup import BeautifulSoup, NavigableString
from re import findall
links = []
BASE_URL = (u'http://www.ilfattoquotidiano.it/giornale-cartaceo/?g=22-02-2011')
br = mechanize.Browser()
datalinks = br.open(BASE_URL).get_data()
datalinks = re.sub("scr\'\+\'ipt", "script", datalinks)
datalinks = re.sub('</script<', '</script><', datalinks)
datalinks = re.sub(u'\xe8','e\'',datalinks)
souplinks = BeautifulSoup(datalinks)
for anchor in souplinks.findAll('a',href=re.compile('www.ilfattoquotidiano.it/2011/02/22')):
links.append(anchor['href'])
Guardiamo ad esempio
Codice: Seleziona tutto
links[5]
il risultato è
u'http://www.ilfattoquotidiano.it/2011/02/22/%e2%80%9caltro-che-diplomazia-le-tribu-lo-cacceranno%e2%80%9d/93288/?nocache'
ovviamente se passo questo link al browser di mechanize
Codice: Seleziona tutto
data = br.open(links[5]).get_data()
l'errore è:
KeyError: u'\xe2'
Il link corretto è
[url]http://www.ilfattoquotidiano.it/2011/02/22/“altro-che-diplomazia-le-tribu-lo-caccerannoâ€/?nocache[/url]
Sti maledetti apici, ma anche altri caratteri speciali, fanno un casino pazzesco e sul sito del fatto ne usano a iosa.
Mi date una mano ad uscirne? Grazi