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

Python - wykonywanie kodu javascript (scraping)

VPS Starter Arubacloud
0 głosów
401 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 473 wizyt
–1 głos
1 odpowiedź 231 wizyt
0 głosów
1 odpowiedź 394 wizyt
pytanie zadane 19 sierpnia 2022 w Python przez NewbieProgrammer Początkujący (480 p.)

92,453 zapytań

141,262 odpowiedzi

319,086 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...