Domanda

immagino, ho bisogno di eseguire una serie di procedure su un particolare sito web per esempio, compilare alcuni moduli, fare clic pulsante di invio, inviare i dati al server di, ricevere la risposta, ancora una volta fare qualcosa in base alla risposta e inviare i dati al server del sito. So che c'è un modulo browser web in python, ma io voglio fare questo senza invocare qualsiasi browser web. E hast ad essere uno script puro.

C'è un modulo disponibile in python, che può aiutarmi a fare che?
grazie

È stato utile?

Soluzione

Si può anche dare un'occhiata a Mechanize . Il suo significato per gestire "stateful navigazione programmatica web" (come da loro sito).

Altri suggerimenti

selenio farà esattamente quello che vuoi e che gestisce javascript

Credo che le migliori soluzioni è il mix di richieste e BeautifulSoup , volevo solo aggiornare la domanda in modo che possa essere mantenuto aggiornato.

http://www.seleniumhq.org/ è la soluzione migliore per me. è possibile codificare con Python, Java, il linguaggio di programmazione o qualcosa che ti piace con facilità. e semplice simulazione che convertire in programma.

Ci sono un sacco di costruito in moduli Python che whould aiutare con questo. Per esempio urllib e htmllib .

Il problema sarà più semplice se si cambia il modo in cui ci si avvicina esso. Tu dici che vuoi per "riempire alcune forme, fare clic sul pulsante di invio, inviare i dati al server di, ricevere la risposta", che suona come un processo in quattro fasi.

In realtà, ciò che è necessario fare è inviare alcuni dati su un server web e ottenere una risposta.

Questa è semplice come:

>>> import urllib
>>> params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
>>> f = urllib.urlopen("http://www.musi-cal.com/cgi-bin/query", params)
>>> print f.read()

(esempio tratto dalla documentazione urllib).

Quello che fai con la risposta dipende dalla complessità del HTML è e che cosa si vuole fare con esso. Si potrebbe ottenere via con l'analisi utilizzando un'espressione regolare o due, oppure è possibile utilizzare la classe htmllib.HTMLParser, o forse un livello più alto parser più flessibile come bella zuppa .

Selenium2 comprende WebDriver, che ha binding nofollow pitone e permette di impiegare il driver HtmlUnit senza testa, o passare a firefox o cromo per il debug grafica.

Non dimenticate zope.testbrowser che è wrapper meccanizzare

  

zope.testbrowser fornisce un browser web programmabile facile da usare, con particolare attenzione alla sperimentazione.

La soluzione migliore che ho trovato (e attualmente attuazione) è: - script in python che utilizzano il selenio WebDriver - PhantomJS del browser senza testa (se Firefox è usato si avrà un'interfaccia grafica e sarà più lenta)

HtmlUnit è il pacchetto, se sei uno sviluppatore Java. http://htmlunit.sourceforge.net/apidocs/index.html

Ho trovato il iMacros plugin per Firefox (che è gratuito) di funzionare molto bene.

Può essere automatizzato con Python utilizzando interfacce degli oggetti COM di Windows. Ecco qualche esempio di codice da http://wiki.imacros.net/Python . Richiede Python per Windows Estensioni :

import win32com.client
def Hello():
    w=win32com.client.Dispatch("imacros")
    w.iimInit("", 1)
    w.iimPlay("Demo\\FillForm")
if __name__=='__main__':
    Hello()

È probabile che desidera urllib2 . E 'in grado di gestire le cose come HTTPS, biscotti, e l'autenticazione. Si avrà probabilmente anche voler BeautifulSoup per aiutare analizzare le pagine HTML.

Si può avere uno sguardo a queste diapositive dal ultima PyCon italiano (pdf): L'autore elencato la maggior parte della biblioteca per fare raschiatura e la navigazione in python autoted. così si può avere uno sguardo esso.

mi piace molto twill (che è già stato suggerito), che è stato sviluppato da uno dei del naso gli autori ed è specificatamente mirati siti web di test.

Internet Explorer specifica, ma piuttosto buona:

http://pamie.sourceforge.net/

Il vantaggio rispetto al urllib / BeautifulSoup è che esegue JavaScript così dato che utilizza IE.

httplib2 + BeautifulSoup

Utilizzare Firefox + Firebug + HTTPREPLAY per vedere che cosa il javascript passa da e per il browser dal sito web. Usando httplib2 si può sostanzialmente fare la stessa via posta e ottenere

Per l'automazione è sicuramente potrebbe desiderare di check-out

  

webbot

La sua è basato su selenio e offre molte più funzioni con pochissimo codice come trovare automaticamente gli elementi per eseguire azioni come clic, tipo in base ai vostri parametri.

La sua funziona anche per i siti con nomi di classe che cambiano dinamicamente e ID.

Ecco doc: https://webbot.readthedocs.io/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top