Próbuję zbudować coś, co przeszukuje zawartość ze strony z nieskończonym przewijaniem. Jednak nie mogę dostać rzeczy spod pierwszej "przerwy". Jak mam to zrobic?Jak przeszukiwać stronę z nieskończonym przewijaniem?
Odpowiedz
Nieskończone przewijanie jest prawie zawsze wykonywane w JavaScript przy użyciu technologii AJAX lub pokrewnej. W związku z tym nie wystarczy, aby twój robot sieciowy pobierał kod HTML i parsował go; musi pobrać i wykonać javascript, lub przynajmniej przeskanować go pod kątem wywołań AJAX.
Wykonanie pełnej wersji javascript jest prawdopodobnie najlepsze (tj. Będzie najbardziej gwarantowane do pracy), ale jest prawdopodobnie najtrudniej zrobić.
Skanowanie JavaScript dla żądań AJAX i/lub szukasz funkcji, które wykonują wywołania AJAX, a następnie wykonaj manipulacji DOM będzie prawdopodobnie najprostszy (w stosunku do pełnej JS wykonanie)
Dzięki. Ponieważ jestem względną nowicjuszką, czy możesz dać mi przykład, jak to zrobić? – user1319169
Nie jest to proste. Ale napisałeś swojego robota, aby odebrał kod HTML i przeanalizował go, niech szuka tagów 'script', uzyska URL z atrybutu' src', następnie pobierze JS i zeskanuje 'xmlhttp' i co nie. – cegfault
Nawet skanowanie dla xmlhttp może być skomplikowane, ponieważ prawdopodobnie jest wywoływane przez inną funkcję. A więc znajdźmy wywołanie xmlhttp, które jest używane przez $ .ajax, teraz musisz powrócić do miejsca, w którym jest wywoływany $ .ajax, który może być inną funkcją zdefiniowaną przez użytkownika. W skrócie, musisz przejść cały stos wywołań, aby znaleźć adres URL pobieranego zasobu, ale jest więcej problemów, adres URL będzie budowany dynamicznie. Aby rozwiązać ten problem, Google opiera się na webmasterach dodających określone znaczniki, aby umożliwić przeszukiwanie stron ajax, – bigblind
AJAX żądanie nie różni się od innych życzenie . Po prostu przesyłasz wniosek, analizujesz wynik, a tam masz dane.
Może to zająć trochę doświadczenia, jeśli nie zrobiłeś tego wcześniej, ale brzmi to jak dobra lekcja.
Ta odpowiedź powinna być odpowiednia dla dużego odsetka nieskończonych przewijaczy, oczywiście twój przebieg może się różnić.
Większość nieskończonych przewijaczy pracuje z użyciem przesunięcia i po prostu chwyta następny fragment przedmiotów z przesunięcia. Dokładnie tak samo, jak może działać stronicowanie, przechodząc przez z tą różnicą, że przesunięcia są przechowywane i używane do wykonania nowego żądania.
Mając to na uwadze, jeśli otworzysz pasek narzędzi dla programistów w przeglądarce Chrome lub Firefox i sprawdzisz kartę sieciową, najprawdopodobniej zobaczysz nadchodzące żądania podczas przewijania w dół.
Spójrz na parametry na życzenie, a najprawdopodobniej zobaczyć coś
GET /api/v2/books?offset=100=count=10
GET /api/v2/books?offset=110=count=10
GET /api/v2/books?offset=120=count=10
Wiedząc o tym, można bardzo łatwo ignorować rzeczywistości skrobanie z HTML docelowej, i po prostu skorzystać z ich wewnętrzną cel URI składaj swoje prośby.
To działa idealnie. – chris
- 1. Praca z animacją i nieskończonym przewijaniem js
- 2. Wiele przewijanych jonów zarówno z nieskończonym przewijaniem
- 3. dojdzie do tej samej pozycji po powrocie z nieskończonym przewijaniem
- 4. Ikony społecznościowe nie działają z nieskończonym przewijaniem w Wordpress
- 5. Najlepsza sieć open-source z płynnym, nieskończonym przewijaniem
- 6. jonowe 3.X: wirtualny zwój z nieskończonym przewijaniem (tj. Zmiana zestawu danych)
- 7. Konflikt UIPanGestureRecognizer z przewijaniem
- 8. Ustalone pozycjonowanie z przewijaniem
- 9. Jak przetestować dyrektywę AngularJS z przewijaniem
- 10. Przeglądarka PDF z poziomym przewijaniem
- 11. Jak przeszukiwać tablicę w Ruby?
- 12. Jak przeszukiwać tablicę w JavaScript?
- 13. Pełny obraz tła z przewijaniem pionowym
- 14. Rządowy wiersz z poziomym przewijaniem
- 15. Jak mogę przeszukiwać wiele instancji codemirror?
- 16. Problem z przewijanym przewijaniem z połączonymi listami
- 17. Jak przeszukiwać pole int w Lucene 4?
- 18. ASP.NET/IIS6: Jak przeszukiwać mapę mime serwera?
- 19. ListView WPF nie zintegrowany z przewijaniem
- 20. Blokady przewijania/przewijania po animacji z przewijaniem
- 21. Lepsza nawigacja z płynnym przewijaniem przeskakuje
- 22. Jak mogę przeszukiwać wielkość liter w pgrep?
- 23. Jak mogę przeszukiwać tablicę w VB.NET?
- 24. Multiline EditText w RecyclerView problemy z przewijaniem
- 25. iOS - Jak przeszukiwać "przeszukiwalne" zasoby ABS, z ABSourceType | kABSourceTypeSearchableMask
- 26. Otwórz ImageView z powiększeniem i przewijaniem
- 27. Widget <Select> z nieskończonym liście rozwijanym
- 28. będzie_popraszać z niekończącym się przewijaniem | Rails4
- 29. Problem z przewijaniem w zwirtualizowanym TreeView
- 30. UITableView Problemy z przewijaniem, gdy wewnątrz UIScrollView
Będziemy musieli wiedzieć, w jaki sposób wprowadzono nieskończone przewijanie, aby odpowiedzieć na twoje pytanie. Prawdopodobnie odbywa się to przy użyciu wywołań AJAX. Oznacza to, że jeśli twój robot jest napisany w języku po stronie serwera, takim jak ruby, musisz wykonać te javascript na tej stronie. – bigblind
Wdrożono za pomocą Ajax. – user1319169