Repository 32bit  Forum
Repository 64bit  Wiki

python unicode e me stesso: tre maledizioni

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

python unicode e me stesso: tre maledizioni

Messaggioda venerdi_12 » gio feb 24, 2011 11:17

Scusate ragazzi,
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
Avatar utente
venerdi_12
Packager
Packager
 
Messaggi: 258
Iscritto il: ven lug 08, 2005 23:00
Località: Lusciano (Ce)
Nome Cognome: Luciano Fattore
Kernel: 3.0
Desktop: kde-4.7.0
Distribuzione: archlinux

Re: python unicode e me stesso: tre maledizioni

Messaggioda odiusseus » gio feb 24, 2011 19:33

ciao se le hai copiato da una parte all'altra il link...riscrivi da capo solo quei simboli. A me basta fare così...oppure apri con l'editor di testo di kde (kwrite) che mette al momento del salvataggio del file con estensione .py l'indicazione a python per i caratteri unicode..o una cosa simile..
Codice: Seleziona tutto
#!/usr/bin/env python
# -*- coding: utf-8 -*-

ciao
odiusseus
Linux 2.4
Linux 2.4
 
Messaggi: 352
Iscritto il: sab giu 30, 2007 13:09
Località: roma/vibo valentia
Slackware: 13.0
Kernel: 2.6.32.2
Desktop: kde


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti

cron