ďťż
 
 
   [+] Bash i Javascript jak wywołać polecenie z konsoli
 
 

Tematy

 
    
 

 

 

 

[+] Bash i Javascript jak wywołać polecenie z konsoli





rryk - 25-01-2010 13:36
W jaki sposób mogę wywołać polecenie javascript przez skrypt bash ważne aby mieć możliwość importu ciasteczek (javascript potrzebuje zalogowanego użytkownika, więc bez tego ani rusz). Wiem że zarówno wget jak i curl takich opcji nie posiadają (przynajmniej wbudowanych), ale słyszałem że da się to jakoś obejść przez ajaxa lub po prostu skorzystać z jakiegoś innego programu.



lessmian2 - 25-01-2010 15:09

zarówno wget jak i curl takich opcji nie posiadaja(przynajmniej wbudowanych) A skąd masz takie informacje? polikarp% man curl | grep cookie
      tication,  ftp upload, HTTP post, SSL connections, cookies, file trans‐
      -b/--cookie <name=data>
              (HTTP) Pass the data to the HTTP server as a cookie. It is  sup‐
              name to use to read previously stored cookie lines  from,  which
              also activates the "cookie parser" which will make  curl  record
              incoming cookies too, which may be handy if you’re using this in
              the  file  to  read cookies from should be plain HTTP headers or
              the Netscape/Mozilla cookie file format.
              NOTE that the file specified with -b/--cookie is  only  used  as
              input.  No cookies will be stored in the file. To store cookies,
              use the -c/--cookie-jar option or you could even save  the  HTTP
      -c/--cookie-jar <file name>
              Specify to which file you want curl to write all cookies after a
              completed  operation.  Curl  writes  all cookies previously read
              from a specified file as  well  as  all  cookies  received  from
              remote server(s). If no cookies are known, no file will be writ‐
              ten. The file will be written using  the  Netscape  cookie  file
              cookies will be written to stdout.
              NOTE If the cookie jar can’t be created or written to, the whole
              then  be  read  in a second curl invoke by using the -b/--cookie
              option! The -c/--cookie-jar option is however a  better  way  to
              store cookies.
      -j/--junk-session-cookies
              (HTTP) When curl is told to read cookies from a given file, this
              option  will  make  it  discard all "session cookies". This will
              Typical  browsers  always  discard  session cookies when they’re
polikarp% man wget | grep cookie
      --no-cookies
          Disable the use of cookies.  Cookies are a mechanism for
          cookie using the "Set-Cookie" header, and the client responds with
          the same cookie upon further requests.  Since cookies allow the
          default is to use cookies; however, storing cookies is not on by
      --load-cookies file
          Load cookies from file before the first HTTP retrieval.  file is a
          cookies.txt file.
          issuing an HTTP cookie upon receiving and verifying your
          credentials.  The cookie is then resent by the browser when
          Mirroring such a site requires Wget to send the same cookies your
          by --load-cookies---simply point Wget to the location of the
          cookies.txt file, and it will send the same cookies your browser
          cookie files in different locations:
              The cookies are in ~/.netscape/cookies.txt.
              Mozilla’s cookie file is also named cookies.txt, located
              ~/.mozilla/default/some-weird-string/cookies.txt.
              You can produce a cookie file Wget can use by using the File
              If you are using a different browser to create your cookies,
              --load-cookies will only work if you can locate or produce a
              cookie file in the Netscape format that Wget expects.
          If you cannot use --load-cookies, there might still be an
          alternative.  If your browser supports a "cookie manager", you can
          use it to view the cookies used when accessing the site you’re
          mirroring.  Write down the name and value of the cookie, and
          manually instruct Wget to send those cookies, bypassing the
          "official" cookie support:
                  wget --no-cookies --header "Cookie: <name>=<value>"
      --save-cookies file
          Save cookies to file before exiting.  This will not save cookies
          cookies"), but also see --keep-session-cookies.
      --keep-session-cookies
          When specified, causes --save-cookies to also save session cookies.
          Session cookies are normally not saved because they are meant to be
          Since the cookie file format does not normally carry session
          cookies, Wget marks them with an expiry timestamp of 0.  Wget’s
          --load-cookies recognizes those as session cookies, but it might
          confuse other browsers.  Also note that cookies so loaded will be
          treated as other session cookies, which means that if you want
          --save-cookies to preserve them again, you must use
          --keep-session-cookies again.
                  wget --save-cookies cookies.txt \
                  wget --load-cookies cookies.txt \
          If the server is using session cookies to track user
          authentication, the above will not work because --save-cookies will
          not save them (and neither will browsers) and the cookies.txt file
          will be empty.  In that case use --keep-session-cookies along with
          --save-cookies to force saving of session cookies.



rryk - 25-01-2010 22:03
Nie chodziło mi o obsługę ciasteczek lecz o obsługę javascriptu, że tego wget ani curl nie obsługuje, a jak uważasz inaczej to daj mi pełne polecenie, którym wykonam to polecenie javascriptu (zmyślone): javascript:akceptuj('reg',%20'zaznacz_reg'); Na stronie załóżmy debian.linux.pl z wykorzystaniem ciasteczek zapisanych w pliku ciastko.txt.



lessmian2 - 25-01-2010 22:28
Napisałeś to tak, że zrozumiałem że ani curl ani wget nie obsługują ciastek :-> Co do javascritpu, rzeczywiście, oba programy nie umożliwiają wykonania skryptów, które normalnie są wykonywane po stronie klienta. Jeśli to zwykły javascript, musisz to sobie sam wykonać, jeśli to jednak AJAX, to musisz się odwołać bezpośrednio do strony do której odwołuje się kod AJAX'owy. Niestety nie podam Ci gotowych rozwiązań, bo ich nie mam/nie znam :->



rryk - 26-01-2010 09:48
To zwykły javascript jak powiedziałem dosłownie jedno polecenie w javascrypcie ale nie moge sobie sam tego wykonać bo tworze coś w rodzaju bot'a który ma to robić za mnie :D dlatego szukam jakiegoś programu który mógłby zostać wywołany z konsoli a po wykonaniu javascriptu po prostu by się wyłączył...



lessmian2 - 26-01-2010 10:10
A tak w ogóle to co ten kod javascript robi?



rryk - 26-01-2010 11:16
Klikam jeden przycisk na pewnej stronie, nie mogę więcej zdradzić.

Edycja:
Ostatnio natknąłem się na to:
http://cplus.about.com/b/2009/01/26/...plications.htm
Może ktoś zna się dobrze na C++ i napisze prosty program (konsolowy), który wczyta ciasteczka i wykona na podanej stronie odpowiednie polecenie w javascript?



lessmian2 - 26-01-2010 11:38

klika jeden przycisk na pewnej stronie Więc w czym jest problem, żeby go samemu kliknąć?



rryk - 26-01-2010 11:52
w tym że to ma robić sie samo omg :D robie skrypt który to za mnie robi kiedy mnie nie ma czaisz?



lessmian2 - 26-01-2010 11:55
Nie samemu, że paluchem na myszce, tylko samemu, że dokonując dodatkowego żądania, za pomocą curla czy wgeta, naciskającego ten przycisk. Rozumiesz?



rryk - 26-01-2010 12:23
Gdyby to działało raczej bym tutaj nie pisał.

Edycja:
Przykładowo curl wyświetla coś takiego: curl: (6) Couldn't resolve host 'javascript:........... a wget: --2010-01-26 12:28:49--  ftp://javascript/polecenie(..........)
          => `-'
Translacja javascript... nieudane: Name or service not known.
wget: nie udało się rozwiązać adresu hosta `javascript'



lessmian2 - 26-01-2010 13:19
Jeśli robisz coś w stylu curl http://javascript/polecenie to jakim cudem ma to działać? Musisz sprawdzić jakie żądanie wysyła przeglądarka w czasie kliknięcia na button i zrobić to samo za pomocą curl'a. Jeśli nie wiesz jak to sprawdzić w konsoli, to zainstaluj sobie np. LiveHttpHeaders do firefoxa i będziesz wszystko ładnie widział.



rryk - 26-01-2010 13:32
Nie.
Wpisuję np. curl -b ciastka.txt javascript:akceptuj('reg',%20'zaznacz_reg') albo: wget --load-cookies=ciastka.txt -O - javascript:akceptuj('reg',%20'zaznacz_reg') Rozumiesz ale programy interpretują to inaczej a tak poza tym ta twoja wtyczka nie rejestruje tego co wciskam.

[Dodano: |26 Sty 2010|, 2010 13:55]
Bardzo przepraszam już rejestruje a mój program działa wyśmienicie.



lessmian2 - 26-01-2010 14:02
Eh. Proponuję przed napisaniem jakiegokolwiek posta, pomyśleć, policzyć do 100, jeszcze raz pomyśleć i dopiero pisać :->
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis