ReCaptcha na FileSonic

ReCaptcha na FileSonic
0

Witam,
czy ktoś by pomógł ugryźć problem z recaptchą na serwisie filesonic ? Z tego co zauważyłem, to ściąga tylko ten skrypcik którego nie potrafię rozgryść.

<script type="text/javascript" src="http://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>

Czytałem wcześniejsze tematy o recaptchy, jednak widocznie coś się pozmieniało z nią.

Z góry dzięki za rady.
Pozdrawiam!

KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:2 minuty
  • Lokalizacja:Gorlice
0

Czytałeś http://4programmers.net/Forum/Delphi_Pascal/167357-Delphi_-_obsluga_recaptcha_Prosba_do_Olesio?hl=CAPTCHA ?
No i w ogóle za pomocą czego to chcesz zrobić? Indy, Synapse czy może WebBrowser?


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
50
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 14 lat
  • Postów:10
0
kAzek napisał(a)

Czytałeś http://4programmers.net/Forum/Delphi_Pascal/167357-Delphi_-_obsluga_recaptcha_Prosba_do_Olesio?hl=CAPTCHA ?

Tak, jednak jak napisałem w pierwszym post'cie, tutaj chyba całkiem inaczej jest to zrealizowane, albo ja nie potrafię wyciągnąć tego key'a z tej strony.

kAzek napisał(a)

No i w ogóle za pomocą czego to chcesz zrobić? Indy, Synapse czy może WebBrowser?

A czy to naprawdę istotne? Nie zależy mi na gotowcu, tylko o podpowiedzi w schemacie postępowania. Czy to będzie indy czy synapse to chyba jeden wacław.

Dodam tylko że chodzi o pobranie pliku, czyli webbrowser raczej nie jest tu potrzebny.

edytowany 1x, ostatnio: 50h
KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:2 minuty
  • Lokalizacja:Gorlice
0

Poszukaj strony w kodzie fragmentu:

Kopiuj
                <script type="text/javascript">
                    function showRecaptcha() {
                        Recaptcha.create("6LdNWbsSAAAAAIMksu-X7f5VgYy8bZiiJzlP83Rl", "capt", {
                         theme: "clean",
                         callback: Recaptcha.focus_response_field});
                    }
                    showRecaptcha();
                </script>

a później zrób sobie link:

Kopiuj
url:= 'http://www.google.com/recaptcha/api/challenge?k=' + //to miedzy Recaptcha.create(" a ", "capt", {

a dalej to jak w temacie do którego wcześniej podałem link.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
50
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 14 lat
  • Postów:10
0
kAzek napisał(a)

Poszukaj w kodzie strony fragmentu:

Kopiuj
                <script type="text/javascript">
                    function showRecaptcha() {
                        Recaptcha.create("6LdNWbsSAAAAAIMksu-X7f5VgYy8bZiiJzlP83Rl", "capt", {
                         theme: "clean",
                         callback: Recaptcha.focus_response_field});
                    }
                    showRecaptcha();
                </script>

.

I tutaj pojawia się mój problem, gdyż nie widzę niczego związanego z recaptchą, oprócz linku http://www.google.com/recaptcha/api/js/recaptcha_ajax.js

Może podam przykładowy linki do pliku i ktoś bardziej rozgarnięty ode mnie w tej tematyce, zerknie pomocnym wzrokiem?

http://www.filesonic.pl/file/993501854/ChromePortable11.0.696.68.rar

edytowany 1x, ostatnio: 50h
KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:2 minuty
  • Lokalizacja:Gorlice
0

Na pierwszej (tej która się wczytuje po wklejeniu linku do pliku) stronie nie ma, wspomniany kod pojawia się na stronie drugiej tej po kliknięciu Slow Download odczekaniu 30 sekund. To 30 sekund to tylko pierwszym razem (przy tym samym linku) później nie wiem strona zapamiętuje IP czy coś w każdym razie na ten sam link nie trzeba czekać przynajmniej jeżeli wywoła się go ponownie w ciągu kilkunastu minut.

EDIT//
Nie wiem jak Ty ale ja robię tak:

Kopiuj
//funkcja by olesio
function TForm1.Parse(StrBegin, StrEnd, Str : string) : string;
var
  B, E : integer;
begin
  Result := '';
  if StrBegin = '' then
  begin
    B := 1;
  end
  else
  begin
    B := Pos(StrBegin, Str);
  end;
  if B > 0 then
  begin
    Str := Copy(Str, B + Length(StrBegin), MaxInt);
    if StrEnd = '' then
    begin
      E := Length(Str) + 1;
    end
    else
    begin
      E := Pos(StrEnd, Str);
    end;
    if E > 0 then
    begin
      Result := Copy(Str, 1, E - 1);
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  USER_AGENT = 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT ' +
    '5.1; pl; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.17 ( .NET CLR 3.5.30729)';
  CAPTCHA_API_URL = 'http://www.google.com/recaptcha/api/challenge?k=';

  LINK = 'http://www.filesonic.pl/file/993501854/ChromePortable11.0.696.68.rar';
var
  inStr, outStr: string;
  i: Integer;
begin
  try
  IdHTTP1.Request.UserAgent:= USER_AGENT;
  IdHTTP1.HandleRedirects:= True;
  outStr:= IdHTTP1.Get(LINK);
  //link z przycisku Slow Download
  inStr:= Parse('<th class="freeAccount"><a href="', '" id="free_download">', outStr);
  if Length(inStr) = 0 then
     raise Exception.Create('Błąd pobierania linku Slow Download');
  //prymitywne czekanie 30 sekund pewnie można to lepiej zrobić ale to test
  for i:= 0 to 30 do
  begin
    outStr:= IdHTTP1.Get(inStr);
    inStr:= Parse('Recaptcha.create("', '", "capt", {', outStr);
    if Length(inStr) > 0 then break;//jest już link to po co czekać dalej
    Sleep(1000);
    Application.ProcessMessages;
  end;
  if Length(inStr) = 0 then //po 30 sekundach nadal nie ma linku?
     raise Exception.Create('Błąd pobierania linku Captcha');
  inStr:= CAPTCHA_API_URL + inStr;
  outStr:= IdHTTP1.Get(inStr);
  Memo1.Text:= outStr;
  except
    on E: Exception do
      ShowMessage(E.Message);
  end;
end

;

EDIT// Dziwne a teraz nie działa :/ Już zgłupiałem nie wiem od czego to zależy.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
edytowany 4x, ostatnio: kAzek
50
Chyba będzie trzeba poczekać na post kogoś kto zna się na tym ajaxie, ewentualnie zaprzęgnąć jakiś interpreter javascriptu. Bo nie wiem jak Tobie, ale mi się nigdy w jawnej formie nie ukazał ten key w źródle strony.
KA
A mi właśnie pokazywał się fragment kodu który podałem a teraz go nie ma. Mi się wydaje ze strona zwraca różny kod w zależności czy już ktoś pobierał coś (z tego IP albo ten sam plik) czy nie ale dzisiaj rano trochę kombinowałem i nie mogę uzyskać tego a wczoraj wieczorem działało.
50
Szczerze przyznam, że nie wrzucałem tego Twojego kodu do delphi, ale później sprawdzę skoro tak mówisz. Jak na razie sprawdzałem jedynie w źródle przeglądarki, co się dzieje w kodzie i w nim samym nic takiego nie wyhaczyłem. Jednak skrypcik z keyami jest dostępny z "inspect element" pod operą, zawsze gdy wyświetla się obrazek. Zatem gdzieś on jest. No nic, później sprawdzę czy rzeczywiście zrobiłem z igły widły.
50
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 14 lat
  • Postów:10
0

Uff, banał.

Po prostu

Kopiuj
outStr:= IdHTTP1.Get(inStr);

winno być wysyłane Postem i pięknie widać kluczyk.

Dzięki wielkie! Pomogłeś niesamowicie, bo ja nie wpadłbym na to, by pobrać jeszcze raz kod strony po 30s. Myślałem, że to musi gdzieś siedzieć w środku.
Także jeszcze raz, Dzięki!

Tylko zastanawie mnie, czemu źródło strony w przeglądarce, mimo ponownego odświeżenia i naciśnięcia "slowdownload" dalej pokazuje wersję bez kluczyków, skoro captcha pokazuje się od razu.. ale mniejsza, ważne, że działa.

edytowany 3x, ostatnio: 50h

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.