• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Python - wykonywanie kodu javascript (scraping)

Object Storage Arubacloud
0 głosów
402 wizyt
pytanie zadane 23 października 2015 w Python przez KULTI Obywatel (1,400 p.)
edycja 23 października 2015 przez KULTI

Witam serdecznie,
z chęcią przepisałbym javascript do pythona jednak poziom zabezpieczenia jest wysoki(naprawdę wysoki), dlatego potrzebuje narzędzia które będzie wykonywało pythona(potrzebuje pobrać źródło strony z wykonanym javascriptem).
- Chciałbym aby dodatek miał wbudowaną obsługę javascript(a nie korzystał z komponentów na komputerze typu ie.)

 

import requests

r = requests.get('link')

print(r.text)

 

lub nawet 2 :D
 

import requests
print(requests.get('link').text)

Tak jak to zrobię w 3 linijkach w request, chciałbym wykonać w czym innym, umożliwiającym pobranie źródła- lecz z wykonanym javascriptem. :)
 

2 odpowiedzi

0 głosów
odpowiedź 23 października 2015 przez furas Maniak (53,800 p.)

W takich przypadkach ludzie używają Selenium bo ono potrafi wykorzystywać przeglądarkę lub symulować działanie przeglądarki - czyli oprócz pobierania danych z serwera (czyli to co robi requests) potrafi też renderować stronę (w tym wykonywać kod JavaScript). 

Selenium może wykorzystywać Firefox lub Chrome ale ma też (tak zwane) drivery, które wykorzystują inne narzędzia do renderowania strony w pamięci bez potrzeby wyświetlania na ekranie. Zdaje się, że jeden z takich driverów wykorzystuje PhantomJS.

---

Jest też Ghost.py, który wykorzystuje klasę WebKit z modułu PyQt do renderowania strony w pamięci http://jeanphix.me/Ghost.py

0 głosów
odpowiedź 23 października 2015 przez Bantu Nałogowiec (34,170 p.)
Nie wiem dokładnie co chcesz zrobić, ani na jakiej stronie chcesz to zrobić, ale w większości przypadków gdy JavaScript ładuje jakieś dane zwraca nam dane w formacie JSON, które można dość łatwo dojrzeć w przeglądarce, wtedy wystarczy tylko sprawdzić jakie zapytanie za co odpowiada, sprawdzić plik, który ładuje dane i jakie dane są mu potrzebne. Wtedy wystarczy tylko do odpowiedniego pliku wstrzyknąć odpowiednie dane i mamy załadowany plik tak jakby to zrobił JS. Np. na Allegro częśc danych produktów jest ładowanych w osobnym zapytaniu JS, więc wystarcza wysłać odpowiedniego hasha do tego pliku i mamy załadowany cały HTML. Może to tak zawile brzmi teraz, bo też chaotycznie o tej porze pisze, ale w praktyce jest dość proste i nie potrzeba jakiś kobylastych bibliotek jak Selenium (chyba to była kobylasta biblioteka), wystarczy coś do przesyłanai requestów i coś do parsowania HTML.

Podobne pytania

0 głosów
2 odpowiedzi 482 wizyt
–1 głos
1 odpowiedź 237 wizyt
0 głosów
1 odpowiedź 426 wizyt
pytanie zadane 19 sierpnia 2022 w Python przez NewbieProgrammer Początkujący (480 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...