Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][CURL] Wypełnianie formularzy z captchą
gambi
post 12.01.2022, 21:17:12
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.07.2010

Ostrzeżenie: (0%)
-----


Witam wszystkich,

Stworzyłem sobie prosty system dodający ogłoszenia poprzez automatycznie wypelnianie formularza dodawania ogloszenia poprzez CURL. Problem pojawia się gdy formularz ma Captchę albo wogóle Recaptchę.

Czy za pośredcnictwem CURLa da się zrobić coś takiego żeby wszedł na stronę - wypełnił formularz, ale go nie wysyłał? Tylko żebym mógł podać ręcznie captchę i wtedy dopiero wyslac caly formularz?

Czy da się wysłać formularz z captchą za pomocą curla? Czy ma ktoś pomysł jak zrobić coś takiego? Będę wdzieczny za każdą pomoc;)
Go to the top of the page
+Quote Post
aras785
post 13.01.2022, 00:49:21
Post #2





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


https://2captcha.com/pl
Go to the top of the page
+Quote Post
gambi
post 13.01.2022, 11:38:53
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.07.2010

Ostrzeżenie: (0%)
-----


Wiem, że są takie serwisy ktore rozpoznają captche... Ale nie wiem jak je dodaćtongue.gif A dwa czy da się ją ręcznie samemu wpisać, tzn. wgrać curlem stronę wyswietlic captche - wypełnić ją i wysłać cały formularz.
Go to the top of the page
+Quote Post
vokiel
post 13.01.2022, 14:43:44
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Użycie samego cURL raczej będzie problematyczne, bo on nie odpala skryptów przeglądarki. A captcha jest odpalana w JS. Także lepszym rozwiązaniem byłoby użycie np Cypress.


--------------------
Go to the top of the page
+Quote Post
aras785
post 13.01.2022, 14:53:41
Post #5





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Wszystko zależy od strony, daj linka to zobaczymy co da się zrobić
Go to the top of the page
+Quote Post
gambi
post 17.01.2022, 19:14:16
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.07.2010

Ostrzeżenie: (0%)
-----


Np tu jest recaptcha
  1. https://www.narew.info/ogloszenia/dodaj


a tu na przyklad zwykla captcha
  1. http://nazakupy.pl/dodaj-oferte


hmm hmm i co?
Go to the top of the page
+Quote Post
Robertus
post 26.02.2022, 19:15:45
Post #7





Grupa: Zarejestrowani
Postów: 7
Pomógł: 1
Dołączył: 22.02.2022

Ostrzeżenie: (10%)
X----


Z recaptchą jest obecnie duży problem i z tym nie pomogę, bo sam zrezygnowałem z obsługi serwisów, które tego używają.
Jeszcze parę lat temu bez problemu się to dało ogarniać, gdy recaptcha zwracała teksty z książek.

Drugi serwis to skrypt akoad i tam bez problemu da się napisać automat.

Należy zrobić to tak, że PHP najpierw wchodzi curlem na stronę dodawania, aby pobrać ciasteczka i ustawić sobie sesję. Możesz je zapisać do pliku lub trzymać w pamięci.
Następnie pobierasz obraz captchy podając w ustawieniach curl ciasteczka sesji. Obraz możesz sobie lokalnie zapisać na dysku.

Następnie wyświetlasz formularz, w którym jako pole ukryte przechowasz ciasteczka (masz je w pamięci skryptu lub w pliku: zależy jak to rozwiążesz).
Wyświetlasz sobie też obrazek captchy i dajesz pole input na przepisanie kodu.

Wysyłasz postem formularz z rozwiązaną captchą. W skrypcie PHP ogarniasz pola wymagane w formularzu ogłoszeń plus w POŚCIE masz rozwiązaną captchę i ją uzupełniasz w odpowiednim polu z ogłoszeń.
PHP ponownie łączy się ze stroną ogłoszeń używając ciasteczek i wysyła zapytanie POST z przygotowanymi polami.

Na 100% takie rozwiązanie działa, bo sam używam tego w kilkuset różnych serwisach. Ja jeszcze osobiście mam po to podpięte api serwisu DeathByCaptcha i mi samo captchę rozwiązuję.

Tu masz przykładowy kod jak to należy ogarnąć.

  1. if (empty($_POST['captcha'])) {
  2. // tutaj łączysz się ze stroną ogłoszeń
  3. // w odpowiedzi masz ciasteczka i sobie je zapisujesz (lub trzymasz w pamięci)
  4. // pobierasz obrazek captchy, ale używasz już przy żądaniu tych wcześniejszych ciasteczek, żeby tam w serwisie do tej sesji dopisało się, jaka captcha się wyświetliła
  5. // tworzysz sobie teraz tutaj formularz i wyświetlasz pobrany obrazek
  6. // jako input type="hidden" name="cookies" wstawiasz ciasteczka z ogłoszeń
  7. // dajesz input type="text" name="captcha", którym przekażesz rozwiązaną captchę
  8. } else {
  9. // tutaj jesteś więc oznacza to, że sam rozwiązałeś captchę
  10. // w zmiennej $_POST['cookies'] masz ciasteczka sesji z serwisu ogłoszeń
  11. // w $_POST['captcha'] masz rozwiązaną captchę
  12.  
  13. // przygotowujesz formularz, który wyślesz curlem do serwisu ogłoszeń
  14. $array = [
  15. 'title' => 'Tytuł ogłoszenia',
  16. 'category' => 'kategoria',
  17. // różne dodatkowe pola
  18. 'captcha' => $_POST['captcha']
  19. ];
  20.  
  21. // i na koniec wysyłasz przygotowany formularz do serwisu ogłoszeniowego
  22. // upraszczam to zakładając, że masz pod to taką funkcję
  23. // gdzie pierwszy parametr to adres, pod który chcesz coś wysłać
  24. // drugi to ciasteczka
  25. // a trzeci to dane formularza
  26. sendCurl('http://nazakupy.pl/dodaj-oferte', $_POST['cookies'], $array);
  27. }
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 19:43