Witaj. Zadanie dla tych, którzy podłączyli listę proxy ipv4 z hasłem do parsera w Pythonie. A także wiedzą, jak dodać logikę, aby parser w przypadku wystąpienia błędu brał inne proxy z listy, którą mu dałem. Wiem, gdzie co się znajduje w kodzie i pokażę wam.
Aby ocenić kod i koszt pracy. I napiszecie, jakąś umowną kwotę. Rozumiem was. Dlatego wygodna opcja. Podłączycie się do mojego komputera przez Anydesk lub Teamviewer. Zobaczycie kod. Zrozumiecie, że możecie wykonać zadanie. Zaktualizujecie swoją stawkę pod projektem, przyjmę was do projektu. Wprowadzę rezerwę środków. Znowu się podłączycie i napiszecie potrzebny kod. Przetestuję, jeśli działa, przyjmuję projekt. Sam skompiluję, zbiorę build. I tylko tak! Bo! Jeśli nie spojrzycie w kod, napiszecie jakąś stawkę. Co z tego wyjdzie? Stracony mój i wasz czas w próżnię i pieniądze? Myślę, że ani wam, ani mnie, to nie jest potrzebne. Myślę, że to wyjaśniliśmy.
Komputer mam PyCharm. Zrobiłem możliwość uruchamiania parsera, samego main, w kompilatorze. Wygodne do testowania kodu.
O samym kodzie: kod napisany jest w Pythonie. Zapytania do serwera wykonywane są przez aiohttp, ponieważ projekt jest asynchroniczny, czyli równolegle wysyłane są zapytania do serwera, a nie po kolei.
Build wykonany przez bibliotekę PyInstaller. Uruchamiam program .exe, i uruchamia się wiersz poleceń. A sam parser otwiera się w przeglądarce, lokalnie pod adresem 127: i tak dalej.
1. Podłączyć proxy Ipv4 z hasłem. Napisać kod do podłączenia proxy. Zrealizować tak, aby proxy brało z mojego config.yaml i samo z siebie zapisywało w samym config.yaml. Musi być pole proxy. Potem tam powinien być lista moich proxy: w takiej kolejności.
Wszystkie proxy będą szły w kolumnie. Każde proxy, swój ip:port:password.
Przy uruchamianiu programu niech bierze dowolne proxy z listy. To można wpisać w plik main.py. Aby przy starcie programu brało proxy. Obowiązkowo zapisujemy kod, jeśli wystąpi błąd przy podłączeniu do proxy, a takie zawsze może być, to wybrać inne z listy.
Teraz najważniejsze! Przy zbieraniu wyników z Google. Występuje błąd. Po pewnym czasie pojawia się captcha. Limity są losowe. Pomaga mi zmiana ip, robiłem to ręcznie. Tutaj jest zapisany kod, aby ponownie połączyć się po 15-20 sekundach. I tutaj trzeba dopisać. W czasie przerwy, wziąć inne proxy, które jest na liście w pliku config.yaml. Jeśli znowu błąd. Znowu wziąć inne. Tylko nie jakieś, nie losowo, a po kolei. Brało 2 proxy, teraz weź 3 proxy. Testowałem ręcznie, podczas przerwy zmieniałem ip, i wtedy Google zabierał swoją captchę, a parser dalej działał. NA EKRANIE KOD. Przerwa i opóźnienie. A także zapisany standardowy dźwięk. Dźwięki trzeba będzie zamienić na moje. O tym w punkcie 2.
2. Zapisz kod dla dźwięku. Teraz tam są zapisane standardowe dźwięki. Które automatycznie się generują. Chcę, abyście zamienili kod. Na kod, w którym będzie wskazane, aby brało dźwięki z config.yaml. Innymi słowy, przy różnych działaniach programu wskazujemy ścieżkę do config.yaml.
A ja już sam będę w Config wskazywał adres umiejscowienia dźwięków. Tylko pokażecie dla przykładu, jak tam adres poprawnie pisać.
W jakich momentach i gdzie wstawić te dźwięki, w kodzie pokażę. Ale zapisujemy dla każdego działania programu swoje wartości, dźwięk będzie różny. No typowo w config będzie.
Pole Sound. I w nim będzie. Lista 5 dźwięków. Start parsowania wyszukiwania. Koniec parsowania wyszukiwania. Rozpoczęty parsing stron. Błąd 429. Tam będzie dźwięk, wstawimy. Zakończenie parsowania stron. Warunki dla przykładu, już zniż podałem.
google_search_start "dysk:C/papka/1-dźwięk.mp3"
google_search_end "dysk:C/papka/2-dźwięk.mp3"
I tak dalej. 5 dźwięków.
3. Domyślnie. Zrobić 2 aktywne przyciski. Żebym ich nie włączał za każdym razem. A same już były włączone. Tutaj zrozumiałe i proste.
Zrobić, aby po zakończeniu zbierania wyników. Automatycznie naciskał przycisk parsowania. Bo teraz za każdym razem na niego naciskam. Tutaj też nic trudnego. Tylko wyprowadzić włączenie i wyłączenie tej akcji w config.yaml
Typu nazwijmy pole. Google_Search_And_Parsing: "1" #1 - aktywuje automatyczną akcję. 0 - wyłączy tę akcję.
No typowo, jeśli sam wchodzę naciskać na ten przycisk jak wcześniej, to żebym nie wchodził za każdym razem w kod. A wchodził tylko w CONFIG. I tam włączał i wyłączał.