Voglio catturare il traffico verso i siti che sto cercando di usare Selenium con python e dato che il traffico sarà https usando un proxy non mi farò allontanare.Cattura della rete con Selenium/PhantomJS
La mia idea era di eseguire phantomJS con selenio e utilizzare phantomJS per eseguire uno script (non sulla pagina utilizzando webdriver.execute_script(), ma su phantomJS stesso). Stavo pensando allo script netlog.js (da qui https://github.com/ariya/phantomjs/blob/master/examples/netlog.js).
Dal momento che funziona in questo modo nella riga di comando
phantomjs --cookies-file=/tmp/foo netlog.js https://google.com
ci deve essere un modo simile a che fare questo con il selenio?
Grazie in anticipo
Aggiornamento:
risolto con browsermob-proxy.
pip3 install browsermob-proxy
codice python3
from selenium import webdriver
from browsermobproxy import Server
server = Server(<path to browsermob-proxy>)
server.start()
proxy = server.create_proxy({'captureHeaders': True, 'captureContent': True, 'captureBinaryContent': True})
service_args = ["--proxy=%s" % proxy.proxy, '--ignore-ssl-errors=yes']
driver = webdriver.PhantomJS(service_args=service_args)
proxy.new_har()
driver.get('https://google.com')
print(proxy.har) # this is the archive
# for example:
all_requests = [entry['request']['url'] for entry in proxy.har['log']['entries']]
Inoltre per installare la libreria python con 'pip', è necessario anche scaricare l'ultima versione di bmp da' https: // github.com/lightbody/browsermob-proxy/releases' e installare l'ambiente di runtime java 'apt-get install default- jre'. 'viene quindi impostato sul percorso di bmp scaricato. –
isedwards