[Python] Estrarre stringa da stringa

2010-09-29 Per discussione franco93it
Salve.
Scarico il sorgente di una pagina web in questo modo:

import urllib
sock = urllib.urlopen(http://www.sito.ext/pagina.ext;)
sorgente = sock.read()
sock.close()


Ora ho la stringa sorgente con il contenuto della pagina.
Come faccio ad estrarre dalla pagina determinate parti contenuti fra tag
noti?
Per esempio se nella stringa c'è *titletitolo/title* come faccio ad
ottenere *titolo*?
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Estrarre stringa da stringa

2010-09-29 Per discussione Antonello Mangone
Regular Expressions ...

Il giorno 29 settembre 2010 14:37, franco93it franco9...@gmail.com ha
scritto:

 Salve.
 Scarico il sorgente di una pagina web in questo modo:

 import urllib
 sock = urllib.urlopen(http://www.sito.ext/pagina.ext;)
 sorgente = sock.read()
 sock.close()


 Ora ho la stringa sorgente con il contenuto della pagina.
 Come faccio ad estrarre dalla pagina determinate parti contenuti fra tag
 noti?
 Per esempio se nella stringa c'è *titletitolo/title* come faccio ad
 ottenere *titolo*?

 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Estrarre stringa da stringa

2010-09-29 Per discussione Vittorio Zuccala'
Sono un po' emozionato: è la prima risposta che do in lista :-)

Se stringa è la variabile dove ci sono le informazioni:

*import re
m = re.search('title(.+)/title', stringa)
m.group(0)
m.group(1)
*




Il giorno 29 settembre 2010 14:37, franco93it franco9...@gmail.com ha
scritto:

 Salve.
 Scarico il sorgente di una pagina web in questo modo:

 import urllib
 sock = urllib.urlopen(http://www.sito.ext/pagina.ext;)
 sorgente = sock.read()
 sock.close()


 Ora ho la stringa sorgente con il contenuto della pagina.
 Come faccio ad estrarre dalla pagina determinate parti contenuti fra tag
 noti?
 Per esempio se nella stringa c'è *titletitolo/title* come faccio ad
 ottenere *titolo*?

 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Estrarre stringa da stringa

2010-09-29 Per discussione Marco Beri
2010/9/29 franco93it franco9...@gmail.com

 Salve.
 Scarico il sorgente di una pagina web in questo modo:

 import urllib
 sock = urllib.urlopen(http://www.sito.ext/pagina.ext;)
 sorgente = sock.read()
 sock.close()


import re
r = re.compile('(!--.*?--)|([^]*)|([^]+)', re.DOTALL)
for x, y, z in r.findall(sorgente):
 if z.strip():
   print z.replace(nbsp;,  )

Ciao.
Marco.

-- 
http://thinkcode.tv/gratis - Capire in 15 minuti cosa può fare Python
http://stacktrace.it - Aperiodico di resistenza informatica
http://python.thinkcode.tv - Videocorso di Python
http://beri.it - Blog di una testina di vitello
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Estrarre stringa da stringa

2010-09-29 Per discussione franco93it
Il giorno 29 settembre 2010 15:47, Vittorio Zuccala' 
vittorio.zucc...@gmail.com ha scritto:

 Sono un po' emozionato: è la prima risposta che do in lista :-)

 Se stringa è la variabile dove ci sono le informazioni:

 *import re
 m = re.search('title(.+)/title', stringa)
 m.group(0)
 m.group(1)*


Grazie mille a tutti
Credo che userò il metodo di Vittorio ;)
Ciao
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Estrarre stringa da stringa

2010-09-29 Per discussione Nicola Larosa
 franco93it ha scritto:
 Scarico il sorgente di una pagina web in questo modo:
 [...] 
 Come faccio ad estrarre dalla pagina determinate parti contenuti
 fra tag noti?

Vittorio Zuccala' wrote:
 Sono un po' emozionato: è la prima risposta che do in lista :-)

Grazie, continua per favore! :-)


 Se stringa è la variabile dove ci sono le informazioni:

 import re

Le espressioni regolari non sono l'ideale per grammatiche dipendenti dal
contesto come l'HTML: per esempio è difficile estrarre dati in presenza
di tag annidati.

Questa estrazione si chiama parsing, e nel caso dell'HTML è complicata
dal fatto che ci sono in giro parecchie pagine il cui markup non rispetta
gli standard: occorre quindi impiegare parser tolleranti, che non vadano
in crisi in quei casi.

Lo strumento tipico in questi casi era BeatifulSoup, ma lo sconsiglio
perché non è più manutenuto, ed è parecchio lento.

Ho avuto buoni risultati con lxml.html
(http://codespeak.net/lxml/lxmlhtml.html). lxml è una delle migliori
librerie XML per Python, ed lxml.html è un parser tollerante specifico
per l'HTML.

-- 
Nicola Larosa - http://www.tekNico.net/

I've learned a lot of programming languages over the years, and I've
taken care never to learn the operator precedence rules in any of them.
It's easy to get them wrong and get bitten and why should I require that
people reading my code learn those stupid rules. - Tim Bray, June 2010
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Estrarre stringa da stringa

2010-09-29 Per discussione franco93it
Il giorno 29 settembre 2010 15:56, Nicola Larosa n...@teknico.net ha
scritto:

 Ho avuto buoni risultati con lxml.html
 (http://codespeak.net/lxml/lxmlhtml.html). lxml è una delle migliori
 librerie XML per Python, ed lxml.html è un parser tollerante specifico
 per l'HTML.


Mi puoi fare un esempio di estrazione come devo fare io con lxml?
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Piccoli progetti crescono

2010-09-29 Per discussione fabrizio fortunato
Salve,
anche se non sono molto attivo sulla lista la seguo da molto e mi è 
stata davvero molto
utile da qualche anno a questa parte.
Volevo far sapere a voi pythonisti che ho pubblicato un primo scriptino 
per la pubblicazione
batch di documenti ( doc, odt ,xml) su un blog wordpress,
lo potete trovare qui
http://gitorious.org/wordpresspost/wordpresspost
Inoltre sto cercando di portare  a termine un feed reader che utilizza 
gtk e webkit per il render HTML,
questo è il link al repository
http://gitorious.org/pyfeed/pyfeed
Un saluto.

-- 
Fabrizio Fortunato

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Estrarre stringa da stringa

2010-09-29 Per discussione Carlos Catucci
 Per esempio se nella stringa c'è titletitolo/title come faccio ad
 ottenere titolo?

A sentimento e senza straci a pensare su troppo:

str = titletitolo/title
stringa = str.replace( /title,  )
str = stringa.replace( title,  )

Oppure con le RE

import re

str = titletitolo/title
re.sub( r'.*?', '',  str )

Greetings
JOKER Ltd.
-- 
Tieni cinque dollari e non dirlo a nessuno. Anzi, no, è troppo:
ridammeli e dillo pure a chi vuoi. (Groucho Marx)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Estrarre stringa da stringa

2010-09-29 Per discussione Marco Giusti
On Wed, Sep 29, 2010 at 03:56:07PM +0200, Nicola Larosa wrote:
[...]
 Le espressioni regolari non sono l'ideale per grammatiche dipendenti dal
 contesto come l'HTML: per esempio è difficile estrarre dati in presenza
 di tag annidati.

Immagino che già conosci questa risposta su stackoverflow[1] ma gli
altri che hanno proposto di usare le espressioni regolari forse no.

[1] http://tinyurl.com/ydb4j9j

-- 
La calunnia è un venticello
Un'auretta assai gentile
Che insensibile, sottile,
Leggermente, dolcemente,
Incomincia a susurrar. 
-- Basilio, Il barbiere di Siviglia
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Estrarre stringa da stringa

2010-09-29 Per discussione Nicola Larosa
franco93it wrote:
 Mi puoi fare un esempio di estrazione come devo fare io con lxml?

Ecco un paio d'esempi. Attenzione che usano entrambi XPath, che è una
sintassi potente, ma non immediata, per identificare tag nei markup
basati su XML:

http://bytes.com/topic/python/answers/790508-parsing-html

http://blog.ianbicking.org/2007/09/24/lxmlhtml/

-- 
Nicola Larosa - http://www.tekNico.net/

I've learned a lot of programming languages over the years, and I've
taken care never to learn the operator precedence rules in any of them.
It's easy to get them wrong and get bitten and why should I require that
people reading my code learn those stupid rules. - Tim Bray, June 2010
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Estrarre stringa da stringa

2010-09-29 Per discussione Marco Mariani
2010/9/29 Nicola Larosa n...@teknico.net

+1 per quanto detto da Nicola: se prendi l'abitudine a fare parsing di HTML
con le regexp, prima o poi ti trovi dei bachi di sicurezza che ci passa un
treno
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Estrarre stringa da stringa

2010-09-29 Per discussione Andrea Gasparini
Marco Giusti spiffera, ùWednesday 29 September 2010 circa:
 On Wed, Sep 29, 2010 at 03:56:07PM +0200, Nicola Larosa wrote:
 [...]
 
  Le espressioni regolari non sono l'ideale per grammatiche dipendenti
  dal contesto come l'HTML: per esempio è difficile estrarre dati in
  presenza di tag annidati.
 
 Immagino che già conosci questa risposta su stackoverflow[1] ma gli
 altri che hanno proposto di usare le espressioni regolari forse no.
 
 [1] http://tinyurl.com/ydb4j9j

grazie, tutto l'ufficio sta ridendo per questa cosa :)
ciaociao
-- 
-gaspa-
---
 https://launchpad.net/~gaspa -
- HomePage: http://gaspa.yattaweb.it --
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Estrarre stringa da stringa

2010-09-29 Per discussione Marco Mariani
On 29 September 2010 16:17, Nicola Larosa n...@teknico.net wrote:

 franco93it wrote:
  Mi puoi fare un esempio di estrazione come devo fare io con lxml?

 Ecco un paio d'esempi. Attenzione che usano entrambi XPath, che è una
 sintassi potente, ma non immediata, per identificare tag nei markup
 basati su XML:

 http://bytes.com/topic/python/answers/790508-parsing-html

 http://blog.ianbicking.org/2007/09/24/lxmlhtml/



Piu' familiare:

In [4]: import lxml.html

In [5]: doc = lxml.html.parse('http://www.google.com').getroot()

In [6]: for el in doc.cssselect('title'):
   ...: print el.text_content()
   ...:
   ...:
Google
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Estrarre stringa da stringa

2010-09-29 Per discussione Marco Beri
2010/9/29 Marco Giusti marco.giu...@gmail.com

 On Wed, Sep 29, 2010 at 03:56:07PM +0200, Nicola Larosa wrote:
 [...]
  Le espressioni regolari non sono l'ideale per grammatiche dipendenti dal
  contesto come l'HTML: per esempio è difficile estrarre dati in presenza
  di tag annidati.

 Immagino che già conosci questa risposta su stackoverflow[1] ma gli
 altri che hanno proposto di usare le espressioni regolari forse no.

 [1] http://tinyurl.com/ydb4j9j


FANTASTICA :-))

Grazie.

E dire che dovrei saperlo bene che non si devono usare le regex per parsare
l'HTML :-)

http://stacktrace.it/2007/11/ce-sempre-leccezione-alla-regular/

Ciao.
Marco.

-- 
http://thinkcode.tv/gratis - Capire in 15 minuti cosa può fare Python
http://stacktrace.it - Aperiodico di resistenza informatica
http://python.thinkcode.tv - Videocorso di Python
http://beri.it - Blog di una testina di vitello
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Estrarre stringa da stringa

2010-09-29 Per discussione Alessandro Dentella
On Wed, Sep 29, 2010 at 02:37:28PM +0200, franco93it wrote:
 Salve.
 Scarico il sorgente di una pagina web in questo modo:
 
 
 import urllib
 sock = urllib.urlopen(http://www.sito.ext/pagina.ext;)
 sorgente = sock.read()
 sock.close()
 
 
 Ora ho la stringa sorgente con il contenuto della pagina.
 Come faccio ad estrarre dalla pagina determinate parti contenuti fra tag noti?
 Per esempio se nella stringa c'  titletitolo/title come faccio ad ottenere
 titolo?

io trovo che pyquery sia il modo più semplice di risolvere il parsing di
pagine html.

In [1]: from pyquery import PyQuery
In [2]: d = PyQuery(url='http://pypi.python.org/pypi/pyquery')
In [3]: title = d('title')[0]
In [4]: title.text
Out[4]: 'Python Package Index : pyquery 0.6.1'

sandro
*:-)


-- 
Sandro Dentella  *:-)
http://www.reteisi.org Soluzioni libere per le scuole
http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Estrarre stringa da stringa

2010-09-29 Per discussione Nicola Larosa
 Marco Giusti spiffera:
 Immagino che già conosci questa risposta su stackoverflow[1] ma gli 
 altri che hanno proposto di usare le espressioni regolari forse no.
 
 [1] http://tinyurl.com/ydb4j9j

Andrea Gasparini wrote:
 grazie, tutto l'ufficio sta ridendo per questa cosa :)

E`... favolosa! :-D Grazie, Marco G. :-)

(Marco B., tu e gli altri, tutti complici di abominio. ;-P )

-- 
Nicola Larosa - http://www.tekNico.net/

I've learned a lot of programming languages over the years, and I've
taken care never to learn the operator precedence rules in any of them.
It's easy to get them wrong and get bitten and why should I require that
people reading my code learn those stupid rules. - Tim Bray, June 2010
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Piccoli progetti crescono

2010-09-29 Per discussione simozack
Il 29 settembre 2010 16:04, fabrizio fortunato
fortunell...@gmail.com ha scritto:

 Un saluto.

Giusto un consiglio: le stringhe utilizzate per descrivere cosa fa una
funzione, mettila dopo la definizione, altrimenti perdi l'utilità
delle docstring. Ad esempio in:

funzione che fa qualcosa
def mia_funzione():
pass

La stringa messa sopra non verrà utilizzata come docstring, a differenza di:

def mia_funzione():
   funzione che fa qualcosa
   pass

Ciao,
Simone
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Estrarre stringa da stringa

2010-09-29 Per discussione Gianluca Bargelli
Beh sembra che non sia l'unico a usare la home di google per testare gli
script :D

Fantastico il secondo link!

2010/9/29 Marco Mariani bir...@gmail.com

 2010/9/29 Gianluca Bargelli g.barge...@gmail.com


 pagina = html.parse('http://www.google.it').getroot()



 giuro non ti ho copiato... :-D



 http://stackoverflow.com/questions/590747/using-regular-expressions-to-parse-html-why-not


 ma allora anche

 http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html



 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Piccoli progetti crescono

2010-09-29 Per discussione fabrizio fortunato

On 29/09/2010 16:59, simozack wrote:
 Il 29 settembre 2010 16:04, fabrizio fortunato
 fortunell...@gmail.com  ha scritto:


 Un saluto.
  
 Giusto un consiglio: le stringhe utilizzate per descrivere cosa fa una
 funzione, mettila dopo la definizione, altrimenti perdi l'utilità
 delle docstring. Ad esempio in:

 funzione che fa qualcosa
 def mia_funzione():
  pass

 La stringa messa sopra non verrà utilizzata come docstring, a differenza di:

 def mia_funzione():
 funzione che fa qualcosa
 pass


Grazie per l'info
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Piccoli progetti crescono

2010-09-29 Per discussione Carlos Catucci
2010/9/29 fabrizio fortunato fortunell...@gmail.com:

 def mia_funzione():
     funzione che fa qualcosa
     pass


 Grazie per l'info

Altra info: __per favore__, quando riepondi, lascia di quoting, solo
le riche che permettano di capire a cosa rispondi e non tutto il msg.

Greetings
JOKER Ltd.
-- 
Tieni cinque dollari e non dirlo a nessuno. Anzi, no, è troppo:
ridammeli e dillo pure a chi vuoi. (Groucho Marx)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python