2013-07-17 15 views
9

Mam webdrivera używającego selenu, który otwiera dla mnie przeglądarkę, wskazuje ją na adres IP, robi kilka rzeczy i zamyka.Jak przechwytywać ruch w pythonie

Chcę poznać wszystkie adresy URL dostępne w tym czasie. Oznacza to, że wszystkie załadowane reklamy, wszelkie połączenia css, które zostały wykonane na dowolny adres URL i tak dalej.

Oto im kod używając

from selenium import webdriver 

browser = webdriver.Firefox(profile) # Get local session of firefox 
browser.get(url) # Open a url and wait for it to finish 
+0

Myślę, że to jest dupek http://stackoverflow.com/questions/3712278/selenium-rc-how-do-you-use-capturenetworktraffic-in-python (chociaż nie jestem pewien, że daje ci to wszystko informacje, które chcesz). Ewentualnie trafne: http://blog.qaevangelist.com/?p=317 –

+0

Jest blisko. Ale potrzebuję sterownika sieci do przechwycenia ruchu. :( – Cripto

+1

@MarkAmery hmm, wygląda na to, że wpis, który podłączyłeś (stackoverflowflow.com/questions/3712278) używa Selenium v1. Cripto i ja jesteśmy ciekawi jak monitorować ruch sieciowy w Selenium v2. (Serwer proxy by działał, ale to ' Daj się znaleźć rozwiązanie wbudowane w Selenium v2) – solvingPuzzles

Odpowiedz

1

Zrobiłem to poprzez załadowanie wtyczki firefox Firebug i Netexport. Pierwszym jest narzędzie, które pozwala zobaczyć całą wymianę informacji, drugie pozwala na zapisanie wszystkiego w pliku (rozszerzenie .har). Więc w zasadzie selen musi załadować wtyczki, stronę internetową i czekać na czas, który chcesz, a kiedy się zamknie, otrzymasz plik z wynikiem.

+1

Czy masz jakiś kod do udostępnienia? – Shane

1

To nie jest rozwiązanie dla Pythona .. Ale możesz dodać wtyczkę skrzypka do Firefoksa. Musieliśmy zrobić dokładnie to samo około rok temu. Użyliśmy selenu, aby otworzyć przeglądarkę i wszystkie rzeczy związane z interfejsem użytkownika, aw tle Fiddler przechwycił cały ruch (http i https). To również zawiera listę wszystkich JS CSS src i możesz później debugować za pomocą inspektora, zobacz, jakie żądanie jest wysyłane i jaka odpowiedź jest otrzymywana

Powiązane problemy