Skocz do zawartości

amb00

Użytkownik
  • Postów

    14
  • Dołączył

  • Ostatnia wizyta

Reputacja

5 Nowy

Ostatnie wizyty

1 622 wyświetleń profilu
  1. Nie wiem jakie dokładnie strony masz na myśli, ale jeśli wymagają wcześniejszego logowania, to mój bot tutaj nie zadziała, bo aby na takich stronach dodać jeden komentarz pod jednym artykułem, filmem, itp. trzeba wykonać kilka zapytań oraz innych czynności(mój bot po prostu wykonuje jedno identyczne zapytania z listy serwerów proxy i po każdym z nich usuwa ciasteczka). Pierwsze zapytanie zaloguje Cię na jakąś stronę i ustanowi sesję, potem dopiero kolejne zapytania będą mogły dodawać komentarze używając ciasteczek, które powstaną po zalogowaniu. A żeby znaleźć filmy, pod którymi możesz dodać komentarze, taki bot musi parsować stronę wyciągając z odpowiednich znaczników linki do tych filmów. Przykładowe zastosowanie bota, to nabicie ocen np. tutaj: https://tablica-rejestracyjna.pl/DGL24130 Bo w takim przypadku nie musisz się logować. Wystarczy jedno zapytanie HTTP, aby dać jedną ocenę.
  2. @Filips90Bot działa na zasadzie wysyłania określonego zapytania metodą GET lub POST, które kolejno wykonuje z serwerów proxy, które są zapisane w odpowiednim pliku. Wyjaśnione to jest w pliku readme. W dużym skrócie, bota można użyć tam, gdzie do uzyskania danego efektu można użyć jednego identycznego zapytania. Na przykład możesz nabić ocenę jakiemuś artykułowi na stronie, gdzie, do dania oceny wystarczy naciśnięcie kciuka go góry bez konieczności logowania się i wykonywania innych działań np. wpisywania kodu captcha. Aby wiedzieć kiedy da się użyć tego programu i jak, trzeba mieć podstawową wiedzę na temat budowy stron oraz protokołu HTTP.
  3. Bezpośredni link do archiwum z plikiem exe: https://github.com/arkadiusz97/UniversalBot/releases/download/1.1/bin_UniversalBot.zip Ten link jest na samym dole pliku readme. Ty zapewne ściągnąłeś sam kod źródłowy, który jest oddzielony od binarki.
  4. Witam, przedstawiam Wam program, który powtarza jedno zapytanie GET lub POST z wielu serwerów proxy typu HTTP. Można użyć tego programu do np. nabijania ocen obrazkom, artykułom, komentarzom, itp. na stronach, gdzie wymagane jest wysłanie tylko jedno zapytania bez wcześniejszego zalogowania. Zasada użycia jest prosta. Po załadowaniu strony, odpalamy konsolę w przeglądarce, klikamy np. łapkę w górę tam, gdzie chcemy dać ocenę. Potem zawartość zapytania wklejamy do programu i kilkamy START. Przedtem do w pliku proxies.txt umieszczamy dane naszych serwerów proxy w formacie: ip:port lub ip:port:użytkownik:hasło. Każdy serwer proxy umieszczony jest w osobnej linijce. Program przetestowałem na stronach takich jak http://tablica-rejestracyjna.pl/ czy https://chamsko.pl/, gdzie do wystawienia oceny wystarczy zrobić jedno zapytanie bez konieczności logowania się. W razie wątpliwości dotyczących działania programu, pytajcie śmiało Kod źródłowy: https://github.com/arkadiusz97/UniversalBot Skompilowany program gotowy do uruchomienia pod systemami Windows 7/8/10: https://github.com/arkadiusz97/UniversalBot/releases/download/1.1/bin_UniversalBot.zip
  5. Za 100 zł mogę takiego napisać. Warunkiem działania będzie dostęp do kont, z których te łapki w górę będą dawane.
  6. Witajcie, napisałem w Pythonie bota służącego do przeszukiwania stron pod kątem występowania napisów zgodnymi z danymi wyrażeniami regularnymi. Program wchodzi na podaną stronę i wyciąga z niej linki do innych stron wraz z napisami pasującymi do podanych wyrażeń regularnych, potem wchodzi na strony z linków, wyciąga napisy i kolejne linki i tak dalej. Może się komuś przyda https://github.com/arkadiusz97/RegexBot
  7. Oto lista przydanych materiałów do nauki języków C i C++. Książki Według mnie i nie tylko, od nich należy zacząć naukę programowania w ogóle, potem będąc bardziej zaawansowanym można się zdać na dodatkowe materiały np. dokumentację czy kursy, gdzie mogą być rzeczy jakich się nie znajdzie w swoich książkach. Oto dwie książki do C++ i jedna do C, z których korzystałem, i które mogę polecić. Do C++: -C++. Dla każdego. Wydanie VII Siddhartha Rao -C++. Przewodnik dla początkujących Alex Allain Do C: -Język ANSI C druga edycja Dennis Ritchie i Brian Kernighan. Mimo swoich lat, ta książka wciąż jest aktualna, jeśli chodzi o podstawowe konstrukcje języka C, nie ma w niej tylko rzeczy wprowadzonych w standardach C99 i C11. Jest to jedna z klasycznych pozycji do języka C, w końcu jednym z autorów tej książki jest sam twórca tego języka. Kursy i dokumentacje. Kursy są czasem dobrym uzupełnieniem tego czego nie ma w książce, a w szczególności dokumentacja zawierająca informacje o np. bardzo przydatnych klasach czy funkcjach z biblioteki standardowej czy też mało znanych konstrukcjach z danego języka. Kurs z Wikibooks jest to kurs do języka C będący równocześnie wprowadzeniem do kursu C++. Moim zdaniem informacje tam są zwięźle i równocześnie dokładnie opisane. Świetnie się sprawdzi do przypomnienia sobie czegoś na szybko z tych języków. Cppreference Dokumentacja dla obu omawianych języków, zawiera ona bardzo aktualne informacje, nawet można tam znaleźć opis rzeczy ze standardu C++17(nie jest tylko pewien czy wszystkich). Cpp0x Portal z kursem do C++ oraz z dokumentacją do biblioteki standardowej do C++, WinAPI, OpenGL oraz wielu innych bibliotek dla tych języków. Wszystko przetłumaczone na język polski. Cplusplus Podobny portal do cpp0x. Zawiera tutorial do C++(niesprawdzany przeze mnie) oraz dokumentację. Nie daję gwarancji na to, że te strony, na których umieszczone są dokumentacje zawierają wszystko co zwiera dana biblioteka, tak samo nie gwarantuję, że tutoriale z tych stron będą w pełni aktualne i bezbłędnie zrobione.
  8. amb00

    Dwa proste boty.

    Witajcie, napisałem w Pythonie dwa proste boty do dwóch stron internetowych. Raczej nie pomogą w zarobieniu pieniędzy, ale mogą się przydać komuś początkującemu, kto chce zacząć robić tego typu programy https://github.com/arkadiusz97/chamsko.pl_bot https://github.com/arkadiusz97/go2goal.com-simply-bot
  9. Oferuję wykonanie niewielkich projektów w językach C i C++, w tym z użyciem biblioteki Qt oraz STL w podstawowym zakresie oraz w języku Python. Posiadam już doświadczenie w wykonywaniu projektów zaliczeniowych dla studentów, robiłem też własne projekty. Potrafię też wykonywać boty do stron internetowych w Pythonie. Cena tej usługi ustalana będzie indywidualnie w zależności od projektu do wykonania, ale mogę zapewnić, że nie będzie drogo. Ceny od najprostszych rzeczy zaczynają się od 50 zł włącznie. Od razu zastrzegam, że mogę odmówić przyjęcia zlecenia, jeśli będzie dla mnie za trudne lub, gdy nie będę miał czasu, choć obiecuję, że o tym będę od razu informował, gdy tylko ktoś mi poda wymagania co do aplikacji. Zainteresowanych proszę o kontakt na adres e-mail Moje konto na GitHubie z nieco większymi rzeczami: https://github.com/arkadiusz97
  10. @AveremPrzed wysłaniem kodu pytałem się czy wysłać wideo z tego jak działa program, ale zleceniodawca nie napisał, że to chce. Ale przy swoim pierwszym zleceniu, które było pełnoprawną okienkową aplikacją, to cały czas wysyłałem filmy z postępów i wszystko dobrze się ułożyło.
  11. Zdecydowałem ostatecznie, że dam sobie spokój. Po prostu na przyszłość po pierwsze wysyłam program z kodem po otrzymaniu zapłaty, po drugie będę dużo dokładniej wypytywał się o szczegóły. Kod tego programu i treść zadania możecie zobaczyć tutaj: #include <iostream> #include <fstream> #include <vector> #include <stdlib.h>//Potrzebne dla funckji zamieniających łańcuch znakowy na liczby. #include <conio.h>//Potrzebne dla funckji getch() using namespace std; struct pracownik { string imie; string nazwisko; int rok; string pesel; float pensja; int staz; }; bool OdtworzBaze(vector<pracownik>&dane, fstream& plik, string nazwa); bool PokazBaze(const vector<pracownik>&dane); bool ZapisZmiany(const vector<pracownik>&dane, fstream& plik, string nazwa); bool ZmodyfikujRekord(vector<pracownik>&dane); bool UsunRekord(vector<pracownik>&dane); bool DodajRekord(vector<pracownik>&dane); int main(int argc, char** argv) { if(argv[1]==NULL)//Sprawdzenie czy podano nazwe pliku. { cout<<"Nie podales nazwy pliku.\n"; return 1;//Zwrócenie informacji o nieprawidłowym wykonaniu } char opcja=0; fstream plik; vector<pracownik>rekordy;//Przechowuje bazę, na której działają poszczególne funckje. string tmp=argv[1]; OdtworzBaze(rekordy, plik, tmp.c_str());//Otworzenie pliku z bazą o nazwie podanej w linii poleceń. cout<<"Dostepne opcje:\n0-Zamkniecie programu.\n1-Pokazanie bazy.\n2-Zapisanie zmian.\n3-Zmodyfikowanie rekordu.\n4-Usuniecie rekordu.\n5-Dodanie rekordu.\n"; do { cout<<"Wybierz opcje: "; opcja=getch();//Pobranie znaku identyfikującego opcję. cout<<"\n"; switch(opcja) { case '0': return 0; case '1': PokazBaze(rekordy); break; case '2': ZapisZmiany(rekordy, plik, tmp); break; case '3': ZmodyfikujRekord(rekordy); break; case '4': UsunRekord(rekordy); break; case '5': DodajRekord(rekordy); break; default: cout<<"Nie ma takiej opcji w menu.\n"; } }while(opcja!=0);//Działanie do momentu wybrania zera na klawiaturze. return 0; } bool OdtworzBaze(vector<pracownik>&dane, fstream& plik, string nazwa) { dane.clear(); string tmp; plik.open(nazwa.c_str(), ios::in|ios::out);//Otworzenie pliku z opcjami do zapisu i odczytu. if(!plik.is_open()) return 0;//Zakończenie pracy funckji, jeśli plik nie jest otwarty. for(int i=0;getline(plik, tmp);++i)//Wykonywanie dopóki program będzie mógł pobrać kolejene wiersze z pliku. {//Wczytywanie danych z pliku do dyncamicznej tablicy. switch(i%6)//Wybiera do jakiego pola wpisać zawartość pobranej linii. { case 0: dane.push_back(pracownik()); dane[dane.size()-1].imie=tmp; break; case 1: dane[dane.size()-1].nazwisko=tmp; break; case 2: dane[dane.size()-1].rok=atoi(tmp.c_str());//atoi zmienia łańcuch znakowy na liczbę całkowitą. break; case 3: dane[dane.size()-1].pesel=tmp; break; case 4: dane[dane.size()-1].pensja=atof(tmp.c_str());//atof zmienia łańcuch znakowy na liczbę zmiennoprzecinkową. break; case 5: dane[dane.size()-1].staz=atoi(tmp.c_str()); break; } } return 1; } bool PokazBaze(const vector<pracownik>&dane) { for(size_t i=0;i<dane.size();++i)//Wyświetlenie zawartości wszystkich komórek dynamicznej tablicy, która przechowuje w pamięci ram bazę. { cout<<"Rekord nr. "<<i<<":\n"; cout<<"Imie: "<<dane[i].imie<<"\n"; cout<<"Nazwisko: "<<dane[i].nazwisko<<"\n"; cout<<"Rok: "<<dane[i].rok<<"\n"; cout<<"Pesel: "<<dane[i].pesel<<"\n"; cout<<"Pensja: "<<dane[i].pensja<<"\n"; cout<<"Staz: "<<dane[i].staz<<"\n\n"; } return 1; } bool ZmodyfikujRekord(vector<pracownik>&dane) { unsigned int rekord=0; char wiersz=0; string tmp; cout<<"Wybierz numer rekordu: "; cin>>rekord; if(rekord>=dane.size())//Sprawdzenie czy użyto poprawnego indexu tablicy. { cout<<"Nie ma takiego rekordu.\n"; return 0;//Zwrócenie fałszu w przypadku złego indexu. } cout<<"Wybierz wiersz do modyfikacji(0-imie, 1-nazwisko, 2-rok, 3-pesel, 4-pensja, 5-staz: "; wiersz=getch();//Pobranie jednego znaku bez konieczności zatwierdzania enterem. cout<<"Wpisz zawartosc wiersza: "; cin>>tmp; switch(wiersz)//Wybranie pola jakie chce zmienić użytkownik. { case '0': dane[rekord].imie=tmp; break; case '1': dane[rekord].nazwisko=tmp; break; case '2': dane[rekord].rok=atoi(tmp.c_str()); break; case '3': dane[rekord].pesel=tmp; break; case '4': dane[rekord].pensja=atof(tmp.c_str()); break; case '5': dane[rekord].staz=atoi(tmp.c_str()); break; } return 1; } bool ZapisZmiany(const vector<pracownik>&dane, fstream& plik, string nazwa) { plik.close(); plik.open(nazwa.c_str(), ios::in|ios::out|ios::trunc);//Zamknięcie i otwrcie pliku z dodatkową falgą ios::trunc w celu wyczyszczenia jego zawartpści. for(size_t i=0;i<dane.size();++i)//Pętla działa na wszystkich elementach tablicy. { plik<<dane[i].imie<<"\n";//Zapis zawartości komórek dynamicznej tablicy do pliku. plik<<dane[i].nazwisko<<"\n"; plik<<dane[i].rok<<"\n"; plik<<dane[i].pesel<<"\n"; plik<<dane[i].pensja<<"\n"; if(i==dane.size()-1) plik<<dane[i].staz;//Zapobiegnięcie zapisania pustej linii do pliku. else plik<<dane[i].staz<<"\n"; } plik.close(); cout<<"Zapisano.\n"; return 1; } bool UsunRekord(vector<pracownik>&dane) { unsigned int rekord=0; cout<<"Wpisz rekord do skasowania: "; cin>>rekord; if(rekord>=dane.size())//Sprawdzenie czy użyto poprawnego indeksu tablicy. { cout<<"Nie ma takiego rekordu\n"; return 0; } dane.erase(dane.begin()+rekord);//Usunięcie danego elementu z tablicy. return 1; } bool DodajRekord(vector<pracownik>&dane) { dane.push_back(pracownik());//Utowrzenie nowego elementu w tablicy. cout<<"Podaj imie: ";//Pobranie danych od użytkownika do nowego rekordu. cin>>dane[dane.size()-1].imie; cout<<"Podaj nazwisko: "; cin>>dane[dane.size()-1].nazwisko; cout<<"Podaj rok: "; cin>>dane[dane.size()-1].rok; cout<<"Podaj pesel: "; cin>>dane[dane.size()-1].pesel; cout<<"Podaj pensje: "; cin>>dane[dane.size()-1].pensja; cout<<"Podaj staz: "; cin>>dane[dane.size()-1].staz; return 1; }
  12. @sanderusMówisz o koncie na PayPal? Właśnie myślałem o tym, aby używać konta na PayPal do przyjmowania pieniędzy ze zleceń. Rozumiem, że przelew z jednego konta na PayPlau na inne konto na PayPalu będzie w każdy dzień szybki? No i ogólnie zamiast zaliczek to po prostu będę żądał całej kwoty za program i na dowód, że ja nie kantuję będę wysyłał film, na którym widać działanie programu.
  13. Witajcie. W niedzielę wykonałem pewne drobne zlecenie z C++. Zleceniodawca potrzebował programu na właśnie niedzielę, więc nie mogłem od razu dostać pieniędzy na konto bankowe. Więc poprosiłem o zrzut ekranu z informacją o rozpoczęcie wykonania przelewu. Jednak pieniądze nie przyszły na konto. Poinformowałem o tym zleceniodawcę i napisał mi, że dostał za program 0 pkt., bo albo się nie mógł skompilować, albo skompilował się z ostrzeżeniami. Przed rozpoczęciem pisania programu dwukrotnie pytałem się autora o dokładne wymagania co do programu i w nich nie podał mi, że między innymi program ma działać na Linuxie. A program pisałem pod Windowsem z użyłem nieprzenośnej biblioteki conio.h. Oczywiście poinformowałem go potem, że nie podał mi wszystkich potrzebnych informacji i napisał mi: "Sam mogłeś zapytać czy to ma być na Linuxie czy Windowsie. Windows nie jest domyślnym systemem.". Co z tym zrobić? Czy według Was to ja w czymś zawiniłem, że nie pytałem się gościa o to na jaki dokładnie system ma być program, choć wcześniej dwa razy zadałem ogólne pytanie o wymagania co do programu? Oto pytania jakie mu zadałem przed rozpoczęciem pisania programu w dwóch mailach: "Tylko wyślij mi opis tego co dokładnie program ma robić z tymi strukturami i plikami. Najlepiej wyślij dokładną treść zadania." oraz "Witam, proszę o dokładne określenie tego co ma ten program robić. Jakie ma mieć funkce, itp. Jeśli możesz wyślij treść zadania. ". Ktoś mi napisał, że źle zrobiłem używając biblioteki conio.h, bo nie jest częścią języka(choć jest w kompilatorze na Windowsa) oraz, że używanie jej to zła praktyka. Czy jakiś doświadczony programista C++ może się wypowiedzieć w tej kwestii?
  14. Wykonam proste programy w C i C++ za niewielką cenę. Wszelkie pytania o przykładowe kody, czy umiałbym to zrobić, itp. proszę kierować na pw.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Ta strona korzysta z ciasteczek aby świadczyć usługi na najwyższym poziomie. Dalsze korzystanie z witryny oznacza zgodę na ich wykorzystanie. Polityka prywatności .