Captura de red con Selenium / PhantomJS
Quiero capturar el tráfico a los sitios en los que estoy navegando usando Selenium con python y dado que el tráfico será https, usar un proxy no me llevará lejos.
Mi idea era ejecutar phantomJS con selenio y usar phantomJS para ejecutar un script (no en la página usando webdriver.execute_script (), sino en phantomJS). Estaba pensando en el script netlog.js (desde aquíhttps://github.com/ariya/phantomjs/blob/master/examples/netlog.js)
Como funciona así en la línea de comando
phantomjs --cookies-file=/tmp/foo netlog.js https://google.com
debe haber una forma similar de hacer esto con selenio?
Gracias por adelantado
Actualizar:
Lo resolvió con browsermob-proxy.
pip3 install browsermob-proxy
Código 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']]