Re: [Python] pywebkit

2014-01-16 Thread Walter Valenti


>
>import webkit
>
>w = webkit.WebView()
>w.load_uri('http://192.168.9.1')
>w.execute_script('document.title = STR_AJAX_VALUE')
>print w.get_main_frame().get_title()
>
>l'ambiante di lavoro e' debian, il server web e' una maledetta chiavetta 
>vodafone.
>
>il problema non e' il come fare perche' questo script, eseguito in una 
>shell, digitato a manina, riga per riga all'interno dell'interprete python 
>funziona perfettamente e non sbaglia un colpo.
>
>Inserito in uno script ed eseguito con il piu' canonico python script.py, o 
>peggio, inserito in una mia classe, non carica la pagina web alla riga dove e' 
>riportato load_uri.
>


Ti da qualche errore, o non fa nulla ?
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Riutilizzo del cursor nelle query

2014-01-16 Thread piergiorgio pancino
Ciao,
volevo sapere se esiste una best practice per quanto riguarda l'esecuzione 
delle query e l'uso dell'oggetto cursor.
Per contestualizzare un po' di più ho una classe che in fase di __init__ si 
collega al database, all'interno della classe una serie di funzioni che fanno 
delle query.
Attualmente __init__ crea una istanza di cursor che viene riutilizzata per 
tutte le query.

self.conn = pyodbc.connect(self.DSN,autocommit=False)

self.conn=conn
self.cur=conn.cursor()
(sono omessi i controlli vari)

questo modo di fare è secondo voi corretto o è meglio ad ogni query creare e 
poi richiudere un nuovo cursor ?

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


Re: [Python] pywebkit

2014-01-16 Thread ~redShadow~
On 01/15/2014 06:03 PM, mauro wrote:
> Un caloroso salve a tutti.
> 
> Vorrei chiedere aiuto e forse anche conforto spiriturale circa un problemino 
> su cui mi sto dissanguando da un po' di giorni.
> 
> ho la necessita' di usare webkit per interagire con un server web dove c'e' 
> piu' javascript che anima. In giro non mi pare di aver visto  prodotti che 
> possano tirar su una pagina html infarcita di javascript e gestirsela meglio 
> di webkit.
> 
> il codice, grosso modo deve caricarsi la pagina che gli indico (portandosi 
> appresso, per l'appunto tutto il codice javascript), lanciare una semplice 
> chiamata e ritornarmi un valore da usare nel resto dell'applicazione python.
> 
> A parte che non si trova documentazione fatta bene per pywebkit manco 
> ammazzato. Ho usato tutti i vari esempi trovati in rete, riferimenti sul sito 
> webkit ufficiale e ricerche a 360 gradi.
> 
> questo il codice:
> 
> 
> import webkit
> 
> w = webkit.WebView()
> w.load_uri('http://192.168.9.1')
> w.execute_script('document.title = STR_AJAX_VALUE')
> print w.get_main_frame().get_title()

> il problema non e' il come fare perche' questo script, eseguito in una 
> shell, 
> digitato a manina, riga per riga all'interno dell'interprete python
> funziona perfettamente e non sbaglia un colpo.

Penso derivi dal fatto che load_uri() non aspetta che la pagina sia
caricata / dom inizializzato / tutti gli script eseguiti, mentre quando
inserisci i comandi nell'interprete fai una pausa che da' il tempo
necessario al caricamento.

Giusto per fare una prova, questo dovrebbe funzionare:

import time
import webkit

w = webkit.WebView()
w.load_uri('http://192.168.9.1')
time.sleep(3)
w.execute_script('document.title = STR_AJAX_VALUE')
print w.get_main_frame().get_title()


Ovviamente non é il metodo piú pulito per fare questa cosa, ma quello
sleep di 3 secondi dovrebbe dare tempo agli script della pagina di
terminare l'esecuzione; un metodo piú pulito puó essere quello di
wrappare il codice javascript in un handler dell'evento "load", in modo
da garantire l'esecuzione *dopo* al resto del javascript della pagina,
anche se, anche in quel caso, la chiamata é asincrona, quindi devi
comunque trovare un modo di "bloccare" fino all'esecuzione del tuo
script (penso / spero che esista qualche modo di catturare eventi
javascript attraverso l'oggetto WebView, comunque..).



-- 
  Samuele ~redShadow~ Santi

--


  (  Contact information  )

   E-MAIL:  redsha...@hackzine.org
 BLOG:  http://www.hackzine.org
 WIKI:  http://wiki.hackzine.org
  TWITTER:  https://twitter.com/_rshk
   GITHUB:  https://github.com/rshk


  (  GPG Key: 09F09951  )

  1AFC FAE5 CA4B 3FB0 F300 FA64 3CB0 1008 09F0 9951


 (  Registered Linux-User: #440008  )

  DEBIAN User since 2004 (I even used Sid!)
 GENTOO User since 2008-01-01


--

  Think about the environment: for each top-posted, badly quoted
  or bulk e-mail I receive, I'm going to cut down a tree.



signature.asc
Description: OpenPGP digital signature
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Riutilizzo del cursor nelle query

2014-01-16 Thread Manlio Perillo

On 16/01/2014 10:51, piergiorgio pancino wrote:

Ciao,
volevo sapere se esiste una best practice per quanto riguarda
l'esecuzione delle query e l'uso dell'oggetto cursor.
Per contestualizzare un po' di più ho una classe che in fase di __init__
si collega al database, all'interno della classe una serie di funzioni
che fanno delle query.
Attualmente __init__ crea una istanza di cursor che viene riutilizzata
per tutte le query.

self.conn = pyodbc.connect(self.DSN,autocommit=False)
self.conn=conn
self.cur=conn.cursor()
(sono omessi i controlli vari)

questo modo di fare è secondo voi corretto o è meglio ad ogni query
creare e poi richiudere un nuovo cursor ?



Ciao.
Innanzitutto prova a leggere la PEP 249:
www.python.org/dev/peps/pep-0249/

Al momento non ricordo, ma dovrebbe dare delle indicazioni riguardo 
l'utilizzo.


Infine, ti può essere utile sapere *come* i cursori sono utilizzati in SQL:
http://www.postgresql.org/docs/9.3/interactive/ecpg-commands.html#ECPG-CURSORS

Come vedi è abbastanza diverso da come viene fatto nella DBAPI; un 
cursore viene creato per una query specifica, ed una sola.



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


Re: [Python] Riutilizzo del cursor nelle query

2014-01-16 Thread Marco Fochesato
Io apro una connessione e relativo cursore ad ogni transazione.
Se la transazione prevede l'utilizzo di varie funzioni, passo la
connessione, o il cursore, alle funzioni.

>From Marco with Cinafonino ;-)
On Jan 16, 2014 11:31 AM, "Manlio Perillo"  wrote:

> On 16/01/2014 10:51, piergiorgio pancino wrote:
>
>> Ciao,
>> volevo sapere se esiste una best practice per quanto riguarda
>> l'esecuzione delle query e l'uso dell'oggetto cursor.
>> Per contestualizzare un po' di più ho una classe che in fase di __init__
>> si collega al database, all'interno della classe una serie di funzioni
>> che fanno delle query.
>> Attualmente __init__ crea una istanza di cursor che viene riutilizzata
>> per tutte le query.
>>
>> self.conn = pyodbc.connect(self.DSN,autocommit=False)
>> self.conn=conn
>> self.cur=conn.cursor()
>> (sono omessi i controlli vari)
>>
>> questo modo di fare è secondo voi corretto o è meglio ad ogni query
>> creare e poi richiudere un nuovo cursor ?
>>
>>
> Ciao.
> Innanzitutto prova a leggere la PEP 249:
> www.python.org/dev/peps/pep-0249/
>
> Al momento non ricordo, ma dovrebbe dare delle indicazioni riguardo
> l'utilizzo.
>
> Infine, ti può essere utile sapere *come* i cursori sono utilizzati in SQL:
> http://www.postgresql.org/docs/9.3/interactive/ecpg-
> commands.html#ECPG-CURSORS
>
> Come vedi è abbastanza diverso da come viene fatto nella DBAPI; un cursore
> viene creato per una query specifica, ed una sola.
>
>
> Ciao  Manlio
> ___
> 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] pywebkit

2014-01-16 Thread mauro

Il giorno 16/gen/2014, alle ore 10:12, Walter Valenti  
ha scritto:

> Ti da qualche errore, o non fa nulla ?

magari riportasse un qualche errore. nulla di nulla.

Mauro


signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] pywebkit

2014-01-16 Thread mauro

Il giorno 16/gen/2014, alle ore 11:32, ~redShadow~  ha 
scritto:

> Giusto per fare una prova, questo dovrebbe funzionare:
> 
> import time
> import webkit
> 
> w = webkit.WebView()
> w.load_uri('http://192.168.9.1')
> time.sleep(3)
> w.execute_script('document.title = STR_AJAX_VALUE')
> print w.get_main_frame().get_title()
> 
nada de nada. ho provato anche con tempi piu' lunghi, ma credo che il 
ragionamento abbia bisogno di una piccola aggiustata di tiro.
> 
> Ovviamente non é il metodo piú pulito per fare questa cosa, ma quello
> sleep di 3 secondi dovrebbe dare tempo agli script della pagina di
> terminare l'esecuzione; un metodo piú pulito puó essere quello di
> wrappare il codice javascript in un handler dell'evento "load", in modo
> da garantire l'esecuzione *dopo* al resto del javascript della pagina,
> anche se, anche in quel caso, la chiamata é asincrona, quindi devi
> comunque trovare un modo di "bloccare" fino all'esecuzione del tuo
> script (penso / spero che esista qualche modo di catturare eventi
> javascript attraverso l'oggetto WebView, comunque..).

credo che comunque questa sia la strada giusta su cui ragionare. WebKit ragiona 
in modo asincrono. Me ne ero gia' accorto. Negli script di esempio trovati in 
rete, infatti, vengono usati alcuni segnali che dicono all'ambiente grafico 
quando la pagina e' stata caricata. Il discorso e' anche sensato. Webkit 
ragiona con la grafica in un ambiente grafico dove tutto si basa sull'autonomia 
delle attivita' regolata da segnali e messaggi vari. Caricando velocemente le 
righe di codice (un classico copia e incolla) nell'interprete, qualche volta 
l'execute_script riportava errore in quanto non era stato ancora eseguito tutto 
il codice javascript della pagina.

Ora, essendo il mio caso un po' anomalo, nel senso che non devo usare la 
grafica, ma devo analizzare una pagina web, credo di dover agire in modo 
similare. Il semplice sleep evidentemente e' bloccante, quindi non permette a 
webkit di fare il suo lavoro, almeno nel contesto in cui mi trovo a lavorare). 
Voglio giocare con qualche thread in modo da rendere webkit autonomo rispetto 
al mio codice. Vediamo che ne viene fuori.
Certo, e' come sparare con un cannone a una mosca, ma in qualche modo se ne 
deve venire fuori.

--
mauro
ma...@majaglug.net





signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python