Ich möchte den Verkehr zu den Websites erfassen, die ich mit Selenium mit Python benutze, und da der Verkehr wird https mit einem Proxy wird mich nicht weit bringen.Netzwerkerfassung mit Selenium/PhantomJS
Meine Idee war, phantomJS mit Selen zu starten und phantomJS zu benutzen, um ein Skript auszuführen (nicht auf der Seite mit webdriver.execute_script(), sondern auf phantomJS selbst). Ich dachte an das Skript netlog.js (von hier https://github.com/ariya/phantomjs/blob/master/examples/netlog.js).
Da es so in der Kommandozeile arbeitet
phantomjs --cookies-file=/tmp/foo netlog.js https://google.com
muss es eine ähnliche Art und Weise, dies mit Selen zu tun?
Vielen Dank im Voraus
Update:
es mit browsermob-Proxy gelöst.
pip3 install browsermob-proxy
Python3 Code
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']]
Zusätzlich Um die Python-Bibliothek mit 'pip' zu installieren, müssen Sie auch die neueste Version von bmp von' https: // github.com/lightbody/browsermob-proxy/releases 'herunterladen und die Java-Laufzeitumgebung installieren. apt-get install default- jre '' 'wird dann auf den Pfad gesetzt, in den Sie bmp heruntergeladen haben. –
isedwards