2012-01-12 18 views
9

Chcę zeskrobać niektóre strony internetowe, które ładują swoje składniki dynamicznie. Ta strona zawiera skrypt onload i widzę całą stronę 3-5 sekund po wpisaniu adresu URL w przeglądarce.Jak zmechanizować oczekiwanie na załadowanie strony internetowej?

Problem polega na tym, że gdy zadzwonię pod numer br.open('URL'), odpowiedzią jest strona internetowa o 0 sekundach. Istnieje różnica 3-5 sekund później między kodem HTML (który chcę) a wynikiem br.open('URL').

Odpowiedz

1

Praca ze stroną z bogatymi plikami javascripts z mechanizacją nie jest łatwa, ale istnieją sposoby na uzyskanie tego, czego chcesz, w zależności od sytuacji.

  • Jeśli niektóre wnioski json są do tworzenia treści, to można nazwać, że adresy URL i spróbować przeanalizować odpowiedzi, aby uzyskać zawartość, a następnie spróbuj połączyć go prawidłowo.

  • Jeśli potrzebujesz użyć niektórych formularzy, możesz utworzyć pola formularzy i ustawić ich wartości w ramach zmechanizowania. Lub po prostu napisz metodę, która zakoduje twoje dane POST lub (podaj znaki specjalne itp.) I wyślij je za pomocą metody mechanize.browser.open.

  • Jeśli strona ma pewne funkcje zabezpieczeń javascript oparte (jak jakiegoś specjalnego kodowania do formularza danych przed ich opublikowania), a następnie można użyć node.js jak javascript serwerów aplikacyjnych przetwarzać niektóre bloki kodu JavaScript.

Ale w rzeczywistości, niektóre z powyższych opcji nie jest łatwe do zrobienia, i trzeba pomyśleć dwa razy przed użyciem mechanizacji dla takich projektów.

11

Problem polega na tym, że strona internetowa jest renderowana w przeglądarce internetowej za pomocą mechanizmu javascript. Mechanize nie ma jednak możliwości samodzielnego uruchamiania javascriptu, więc bez względu na to, jak długo będziesz czekać, nie dostaniesz zaginionego kodu HTML za pomocą mechanizmu mechanise.

Aby uzyskać więcej informacji na temat sposobu generowania dynamicznie generowanych treści, należy zapoznać się z tym question.

+0

Dziękuję bardzo! :) – planetes853

+0

Czy istnieje jeszcze inna biblioteka do nawigacji po stronie internetowej z dynamicznym renderowaniem? – planetes853

+0

Proszę spojrzeć na link w mojej odpowiedzi. – jcollado

Powiązane problemy