[Python] Estrarre stringa da stringa
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
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
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/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
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
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
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
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
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
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
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/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
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
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/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
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
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
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
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
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/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