Chcę przechwycić ruch do stron, które przeglądam, aby używać Selenium z pythonem, a ponieważ ruch będzie https przy użyciu proxy nie dostanie mnie daleko.Przechwytywanie sieci za pomocą Selenium/PhantomJS
Mój pomysł polegał na uruchomieniu phantomJS z selenem i użyciu phantomJS do wykonania skryptu (nie na stronie za pomocą webdriver.execute_script(), ale na samym phantomJS). Myślałem o skrypcie netlog.js (stąd tutaj https://github.com/ariya/phantomjs/blob/master/examples/netlog.js).
Ponieważ działa jak to w wierszu poleceń
phantomjs --cookies-file=/tmp/foo netlog.js https://google.com
musi istnieć podobny sposób to zrobić z selen?
góry dzięki
Aktualizacja:
rozwiązać go z browsermob-proxy.
pip3 install browsermob-proxy
kod 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']]
Ponadto aby zainstalować bibliotekę Pythona z 'pip', również musisz pobrać najnowszą wersję bmp z' https: // github.com/lightbody/browsermob-proxy/releases' i zainstalować środowisko uruchomieniowe java 'apt-get install default- jre'.' <ścieżka do brwi ermob-proxy> 'jest wtedy ustawione na ścieżkę, którą pobrałeś bmp do. – isedwards