2009-04-29 9 views
25

łączę do strony internetowej, logując się.Jak używać mechanizmu do przetwarzania JavaScript?

Witryna przekierowuje mnie do nowych stron i Mechanize oferty z wszystkich zadań cookies i przekierowania, ale nie mogę dostać się na ostatniej stronie. Użyłem Firebuga i wykonałem ponownie tę samą pracę i zobaczyłem, że muszę jeszcze przejść dwie strony z Mechanize.

Spojrzałem szybko na strony i zobaczyłem, że jest trochę kodu JavaScript i HTML, ale nie mogłem go zrozumieć, ponieważ nie wygląda on jak normalny kod strony. Po co są te strony? Jak mogą przekierować na inne strony? Co powinienem zrobić, żeby je przekazać?

+3

Dlaczego nie umieścić javascript na stronie wklejanej, takiej jak http://pastie.org/ i nie zamieścić tutaj tego linku? – method

Odpowiedz

36

Jeśli potrzebujesz obsługi stron z Javascriptem, wypróbuj WATIR lub Selenium - to one napędzają prawdziwą przeglądarkę internetową i mogą w ten sposób obsługiwać dowolny skrypt JavaScript. WATIR Classic wymaga albo IE albo Firefox z zainstalowanym pewnym rozszerzeniem, a strony będą migać na ekranie w czasie działania.

Inną opcją będzie zrozumienie, co robi Javascript na stronie naruszającej prawa i pomijanie jej ręcznie, ale wydaje się to uciążliwe.

+1

dziękuję wszystkim. watir zrobiłem dokładnie to, co chciałem zrobić :) wygląda świetnie, zabiera mi więcej rubinu :) po raz pierwszy strona, którą próbowałem dostać, była na mnie zła z powodu user_agent, ale kiedy ustawiłem ją na firefox, problem odszedł. stackoverflow rocks! uwielbiam tutaj :) – user96960

+0

@millimoose możesz ukryć przeglądarkę podczas wykonywania skryptu w WATIR? – Volatil3

+0

Whoa, nitromancja wątku. Nie mam już pojęcia, a ja postawiłbym "nie" - iw każdym razie jest to inne pytanie niż pytanie zadane przez OP, więc możesz poprosić go osobno o SO, aby ktoś mógł odpowiedzieć. Rozważałbym także oglądanie PhantomJS, czyli bezgłowego (tzn. "Bez interfejsu") automatyzatora WebKit. Działa to wystarczająco dobrze, ale kiedy ostatnio chciałem go użyć do czegoś, asynchroniczny API zrobił to, czego potrzebowałem, zbyt zawiłe, więc skończyłem na Selenie. – millimoose

13

Obecnie Mechanize nie obsługuje JavaScript. Nie ma mowy o końcu scalania Johnson „s możliwości w Mechanize, ale dopóki tak się dzieje, masz dwie opcje:

  1. dowiedzieć się JavaScript tyle dobrze, aby zrozumieć, w jaki sposób przemierzać te strony.
  2. Zautomatyzuj rzeczywistą przeglądarkę, aby interpretowała kod JavaScript za pomocą przy użyciu Watir.
+0

Johnson to martwy projekt. Czy jest wymiana? – zhon

5

Po co są te strony? w jaki sposób mogą przekierować na inne strony. co powinienem zrobić, aby je przekazać?

Czasami prace są wykonywane na tych stronach. Czasami jest tam JavaScript, aby uniemożliwić automatyczny dostęp, jak to, co próbujesz zrobić :). Wiele stron internetowych niepotrzebnie sprawdza, czy masz "dobrą" przeglądarkę, więc upewnij się, że Twoja user_agent jest ustawiona na coś typowego, jak IE. Czasami ustawienie user_agent wyglądać jak stara przeglądarka pozwoli Ci przejść obok JavaScript.

Automatyzacja witryny to dobra zabawa, ponieważ trzeba przechytrzyć stronę internetową i jej programistów, korzystając z wielu strategii. Jak powiedzieli inni, Watir jest najlepszym narzędziem do przechodzenia w przeszłości JavaScript.