si_ice Opublikowano 29 Maja 2013 Udostępnij Opublikowano 29 Maja 2013 Witam serdecznie na forum. Napisałem skrypt sprawdzający do 250 fraz na 10 Data Center. Problem w tym, że gdy wykonam za dużo zapytań zamiast wyników otrzymuję Captche. Napisałem funkcję pobierającą z formularza ID oraz stworzyłem AJAXowego inputa z wysyłką captchy oraz ID do skryptu, ktory miałby wysłać po GETem te dane; pod postacią linka: $link = 'https://google.com/sorry/Captcha?hl=pl&continue='.$continue.'&id='.$id.'&captcha='.$captcha.'&submit='.$submit; Starałem się różnymi funkcjami, ale ciągle jako odpowiedź dostaję kolejną Captche. Czy mógłby ktoś podpowiedzieć? Dzięki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Trotyl Opublikowano 29 Maja 2013 Udostępnij Opublikowano 29 Maja 2013 Większość to rozwiązuje na 2 sposoby: - ustawienie sleep(rand(15,30)) pomiędzy zapytaniami - j/w + proxy Co do Twojego sposobu: przejrzyj dokładnie form który otrzymujesz od G, nigdy się w to nie bawiłem więc mogę jedynie przypuszczać że są dodatkowe inputy. Rozwiązanie tokena z tego co pamiętam jest zapisywane w ciastku - włącz zapisywanie ciastek jak nie masz. nihil fit sine causa Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
si_ice Opublikowano 29 Maja 2013 Autor Udostępnij Opublikowano 29 Maja 2013 Rozwiązanie tokena z tego co pamiętam jest zapisywane w ciastku - włącz zapisywanie ciastek jak nie masz. Dzięki za szybką odpowiedź. W formularzu jest ukryty adres do powrotu (name="continue") oraz ID, nic więcej nie ma. Zresztą wszystkie zmienne pakuję do parametrów. Nie chciałbym bawić się z proxy, ale faktycznie spotkałem się z rozwiązaniem opartym na ciastkach, tylko problem w tym, że nie wiem gdzie to ugryźć. Czy mógłbyś podpowiedzieć jak włączyć te cookie dla skryptu? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Trotyl Opublikowano 29 Maja 2013 Udostępnij Opublikowano 29 Maja 2013 Czego używasz do pobierania danych? Jeżeli file_get_contents() to zamień na curl. Masz gotowy zamiennik dla fgc: function get($adres,$post=false) { $ch = curl_init($adres); curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 15); curl_setopt($ch,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); curl_setopt($ch,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); if($post){ curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,$post); } $ct=curl_exec($ch); curl_close($ch); return $ct; } nihil fit sine causa Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
si_ice Opublikowano 29 Maja 2013 Autor Udostępnij Opublikowano 29 Maja 2013 Dzięki za pomoc. Niestety, niewiedzieć temu w przypadku cURLa w ogólę nie dostaję Captchy tylko informacje, że coś próbuję im tam namieszać. Nic też nie zapisuje się w pliku cookie (ma CHMOD 777). Będę jeszcze walczył z rańca, jakby miał ktoś jakieś rady, byłbym wdzięczny. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Trotyl Opublikowano 30 Maja 2013 Udostępnij Opublikowano 30 Maja 2013 Odwołujesz się do obrazka czy do strony? Daj przykładowy link to sprawdzę. nihil fit sine causa Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
si_ice Opublikowano 30 Maja 2013 Autor Udostępnij Opublikowano 30 Maja 2013 Hej, staram się tak zrobić, by w parametrach przeszły te same dane, które wysyłane są z formularza. Wiem jednak, że problem może jeszcze tkwić w zmiennych serwera i tu może być piesek pogrzebany przykładowy link: https://www.google.com/sorry/Captcha?continue=mojadomena.pl&id=&captcha=clici&submit=Prze%C5%9Blij Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Trotyl Opublikowano 30 Maja 2013 Udostępnij Opublikowano 30 Maja 2013 https://www.google.com/sorry/image?id=1183732443730026584&hl=pl tkwić w zmiennych serwera Obrazek normalnie się wyświetla i ustawia ciasteczko. Masz gdzieś błąd w skrypcie. Sprawa wydaje się prosta: 1)pobrać i wyświetlić obrazek 2)wysłać odpowiedź 3)utrzymywać cały czas sesję w ciastku Wszystkie zapytania oczywiście poprzez curl. Więcej nie pomagam, bo musiałbym napisać gotowca nihil fit sine causa Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
si_ice Opublikowano 30 Maja 2013 Autor Udostępnij Opublikowano 30 Maja 2013 Rozumiem rozumiem, gotowca też nie chcę Mam tak: wysietla się albo wynik z numerem pozycji albo obrazek z moim inputem. Po przepisaniu Ajaxior bierze się za getPageData($url) gdzie jako url podaję link, przedstawiony wyżej. Moje pytanie brzmi, czy w tym momencie, gdy serwer google odpowie, serwer z moim plikiem powinien odebrać ciacho i podtrzymywać je do momentu zakończenia korzystania ze skryptu? Dobrze rozumuję? Tylko pytanie, dlaczego nie zapisuje się ciacho Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
WebReklama Opublikowano 31 Maja 2013 Udostępnij Opublikowano 31 Maja 2013 Bo musisz obrazek pobrać przez cURL - tak aby Google skojarzyło sesje z cURL z konkretnym obrazkiem do przepisania. Sam obrazek wyświetlasz nie bezpośrednio z Google - bo wtedy się Twoja sesja z nim skojarzy, a nie ta z serwera. Przesyłanie obrazka musisz dorobić przez skrypt do odpytywania. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
si_ice Opublikowano 31 Maja 2013 Autor Udostępnij Opublikowano 31 Maja 2013 O kurcze, faktycznie idea jest mądra, bo przecież jak odświeży się obrazek przy tym samym ID to dostajemy innego jpg. Chyba to przekracza mój obecny zasób wiedzowy hehe. WebReklama, a w jaki sposób mogę pobrać konkretnie ten obrazek na mój serwer? Z góry dzięki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
WebReklama Opublikowano 31 Maja 2013 Udostępnij Opublikowano 31 Maja 2013 Sprawdzasz na stronie jaki jest obrazek do captchy, pobierasz ja cURL'em, zapisujesz sobie gdzieś na serwerze i wyświetlasz użytkownikowi do przepisania. To co zwróci user przekazujesz przez POST/GET do formularza do przepisania captchy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
si_ice Opublikowano 2 Czerwca 2013 Autor Udostępnij Opublikowano 2 Czerwca 2013 pobrałem na serwer obrazek, wyświetlam go użytkownikowi (i faktycznie wyświetla się ten, który powinien); pod obrazkem daje inputa, który ma dla zdarzenia enter wykonać funkcję onkeyup="mojEnter(event, $id_obrazka)" funkcja pobiera wpisaną captche do inputa oraz id obrazka i przekazuje do pliku go.php, ktory wysyła żądanie do Google. Niestety, nadal nie działa. Czy kwestię pobierania obrazka oraz wysyłania zapytania można rozbić na dwa osobne cUrl? Czy muszę wypełniać formularz, czy mogę po prostu przesłać zmienne w parametrach? Pozdrawiam niedzielnie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mion Opublikowano 2 Czerwca 2013 Udostępnij Opublikowano 2 Czerwca 2013 Obrazek = token ma na celu "uwierzytelnienie użytkownika", więc wszystkie żądania HTTP jakie wykonujesz musisz realizować w ramach jednej sesji klient - serwer. Innymi słowy każde żądanie HTTP jakie wykonujesz do google musi akceptować i wysyłać cookie z tego samego pliku. Do tego dochodzi obsługa "dcaptcherów", czyli serwisów które odczytują token i zwracają wynik... Sądząc po tym, że nie możesz obsłużyć tokena porywasz się z motyką na słońce. W takim wypadku skorzystanie z proxy jest prostszym rozwiązaniem ... choć i tak nie wiadomo czy sobie poradzisz jeśli proxy zwróci kod 302, a nie spodziewany kod SERP HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
si_ice Opublikowano 2 Czerwca 2013 Autor Udostępnij Opublikowano 2 Czerwca 2013 nie do końca rozumiem Mion. Chodzi Ci o to, że ogółem ta sprawa jest ciężka do wykonania, czy moja wiedza nie pozwala na rozgryzienie tego problemu? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Zarchiwizowany
Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.