Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

Skrypt

Tworzenie dynamicznych stron internetowych z zastosowaniem JavaScript, jQuery, Ajax. Dowiedz się jak to zrobić, znajdź rozwiązania swoich problemów.

Skrypt

Post 29.08.2017, 16:10:32

Witam, czy można zrobić skrypt, który wchodzi na daną strone i wpisuje wartości na niej ?

Powiedzmy że chce aby skrypt wszedł w google i wyszukał frazę "Ciągnik"

Chciałbym takie coś uruchomić na VPS.

Z góry dziękuje !
venekus
Posty: 32
Dołączył(a): 28.11.2016

Re: Skrypt

Post 29.08.2017, 18:52:04

Ale to ma się dziać w przeglądarce użytkownika, który wejdzie na Twoją stronę czy w "wirtualnej" przeglądarce uruchomionej na serwerze? Jeśli to drugie to googlaj za Phantom JS lub SlimerJS.
Avatar użytkownikakuku
Rafał Kukawski

+∞
+∞

Posty: 19639
Dołączył(a): 14.04.2002

Re: Skrypt

Post 29.08.2017, 18:54:28

W "wirtualnej" przeglądarce, bardzo dziękuję za pomoc, postaram się już jakoś do tego dojść
venekus
Posty: 32
Dołączył(a): 28.11.2016

Re: Skrypt

Post 29.08.2017, 19:52:12

Takie coś znalazłem

Kod: Zaznacz cały
console.log('Loading a web page');
var page = require('webpage').create();
var url = '"';
page.open(url, function (status) {
  console.log(status);
  document.getElementById("id_1").value = 'test';
  document.getElementById("id_2").value = 'test1';
});


i wyskakuje błąd:

TypeError: 'null' is not an object (evaluating 'document.getElementById("id_1").value = 'test'')
venekus
Posty: 32
Dołączył(a): 28.11.2016

Re: Skrypt

Post 29.08.2017, 20:53:20

Z tym sobie poradziłem, mam teraz inny problem, mam taki kod:

Kod: Zaznacz cały
user_name= '123';
   setTimeout(function()
   {
        page.evaluate(function() {      
            document.getElementById("test1").value = user_name;
       });
   },1000);


Wyskakuje taki błąd: Can't find variable: user_name
venekus
Posty: 32
Dołączył(a): 28.11.2016

Re: Skrypt

Post 29.08.2017, 22:58:27

Spróbuj

Kod: Zaznacz cały
page.evaluate(function(user) {
    document.getElementById("test1").value = user;
}, user_name);
Avatar użytkownikakuku
Rafał Kukawski

+∞
+∞

Posty: 19639
Dołączył(a): 14.04.2002

Re: Skrypt

Post 30.08.2017, 11:29:28

TypeError: 'null' is not an object (evaluating 'document.getElementById("test1").value = user')
venekus
Posty: 32
Dołączył(a): 28.11.2016

Re: Skrypt

Post 30.08.2017, 11:32:03

Jak dla mnie komunikat znaczy, że nie znajduje na stronie elementu id="test1". Może powinieneś zainteresowac się callbackiem onLoadFinished?
Avatar użytkownikakuku
Rafał Kukawski

+∞
+∞

Posty: 19639
Dołączył(a): 14.04.2002

Re: Skrypt

Post 30.08.2017, 11:47:25

Udało mi się to zrobić, teraz mam inne:

Gdy z 1 strony przekierowuje na 2 i ma wykonywać się dalsza część skryptu, to nie znajduje elementu

TypeError: 'undefined' is not an object (evaluating 'document.getElementsByClassName("uk-input")[2].value')
venekus
Posty: 32
Dołączył(a): 28.11.2016

Re: Skrypt

Post 30.08.2017, 11:51:33

Nie jestem w stanie pomóc, ponieważ jedyne co mogę powiedzieć, że nie znalazło. Chyba, że zapomniałeś, że elementy indeksowane są od zera, więc chcesz dobrać się do [1] a nie do [2] elementu. A jeśli to jest poprawne, to znowu mogę powtórzyć, że może musisz poczekać na wczytanie strony, np. za pomocą callbacka onLoadFinished.
Avatar użytkownikakuku
Rafał Kukawski

+∞
+∞

Posty: 19639
Dołączył(a): 14.04.2002

Re: Skrypt

Post 30.08.2017, 12:02:46

Jak za pomocą phantomjs przejsc na daną stronę ?

Kod: Zaznacz cały
var url = "https://google.pl";
var page = require('webpage').create();
   page.open(url, function (status) {
 
   function gotoyt()
{
   //  przechodzi na youtube.com


})


I czy jest możliwość że jakaś strona ma zabezpieczenia żeby nie można było tak wejść ?
venekus
Posty: 32
Dołączył(a): 28.11.2016

Re: Skrypt

Post 30.08.2017, 12:24:25

wg mnie powinno działać
Kod: Zaznacz cały
var google = 'https://google.pl';
var yt = 'https://youtube.com';

var page = require('webpage').create();
page.open(google, function (status) {
    page.open(yt, function (status) {
        console.log('Youtube loaded?', status);
    });
});


niektóre strony mogą ewentualnie bronić się przed "botami" i blokować znane, np. phantomjs.
Avatar użytkownikakuku
Rafał Kukawski

+∞
+∞

Posty: 19639
Dołączył(a): 14.04.2002

Re: Skrypt

Post 30.08.2017, 12:44:33

Można jakiś kontakt z tobą w formie prywatnej jakiś fb ?
venekus
Posty: 32
Dołączył(a): 28.11.2016

Re: Skrypt

Post 30.08.2017, 20:23:16

Znalazłem błąd, ale nie mam bladego pojęcia jak go zniszczyć.

Strona na którą jest przekierowanie to : csgoboss.com

Wejdź na tą stronę i zobacz, przez pierwszą 1 sekunde jest na środku logo i loader potem dopiero strona wczytana.
Użyłem takiego kodu:
Kod: Zaznacz cały
console.log('Loading a web page');
var page = require('webpage').create();
var url = 'http://csgoboss.com/tower';
page.open(url, function (status) {
   console.log(status);
   setTimeout(function()
   {
   var ua = page.evaluate(function() {
      return document.getElementsByTagName("img")[0].src;
    });
    console.log(ua);
   },5000);
});


i zwróciło "http://csgoboss.com/logo.png"

Ten src to jest src w trakcie ładowania strony przez te 1 sekundę.

Czyli według mnie albo strona ma zabezpieczenia anty botowe (takie żeby się nie wczytała), albo po prostu ja jestem jakimś noobem

A może to wina phantom.js , może wirtualna przeglądarka nie jest przystosowana do takich stron ?
venekus
Posty: 32
Dołączył(a): 28.11.2016

Re: Skrypt

Post 31.08.2017, 13:17:30

@kuku co o tym myślisz?
venekus
Posty: 32
Dołączył(a): 28.11.2016

Re: Skrypt

Post 31.08.2017, 13:31:15

Ja myślę, że ta strona ma ten obrazek jako "zaślepkę", która jest widoczna, gdy sobie ajaxem doładowuje dane, które ma zamiar wyświetlić. Czyli żadne zabezpieczenie, po prostu tak strona tak działa i powinieneś przeanalizować jak dokładnie działa ta strona, żeby wiedzieć do jakich zdarzeń się powinieneś podpiąć, żeby móc wykonywać swoją logikę w odpowiednim momencie.
Avatar użytkownikakuku
Rafał Kukawski

+∞
+∞

Posty: 19639
Dołączył(a): 14.04.2002

Re: Skrypt

Post 31.08.2017, 13:43:41

A możesz mi przerobić ten skrypty:

Kod: Zaznacz cały
var page = require('webpage').create();
var url = 'http://csgoboss.com/tower';
page.open(url, function (status) {
   console.log(status);
   setTimeout(function()
   {
   var ua = page.evaluate(function() {
      return document.getElementsByTagName("img")[0].src;
    });
    console.log(ua);
   },5000);
});


na taki, żeby var au = "http://csgoboss.com/f5be1f879930f603f87372711ba00ecd.png" czyli po załadowaniu strony ?
venekus
Posty: 32
Dołączył(a): 28.11.2016

Re: Skrypt

Post 31.08.2017, 20:06:16

@kuku pomóż ten ostatni raz :)
venekus
Posty: 32
Dołączył(a): 28.11.2016

Re: Skrypt

Post 31.08.2017, 22:45:28

Dobra, już nie ważne, wielkie dzięki za pomoc, phantomjs na pewno kiedyś się jeszcze przyda :D
venekus
Posty: 32
Dołączył(a): 28.11.2016


Powrót do JavaScript


 


  • Podobne wątki
    Odpowiedzi
    Wyświetlone
    Ostatni post

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 gości

Hosting, Domeny, SSL

Subskrypcja

Mamy 50667 zarejestrowanych użytkowników.
Najnowszy użytkownik: RozellaF


Nasi użytkownicy napisali:

  • 936047 wiadomości
  • w 246706 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)