Witajcie, napisałem w języku C++ wraz z biblioteką Qt bota, który masowo przeszukuje wiele stron na raz pod kątem występowania na nich napisów pasujących do wybranych wzorców przez użytkownika. Działa on w prosty sposób, w pliku RegexBotConf.txt znajdującym się w tym samym katalogu co program, należy w pierwszej linijce podać stronę od której ma zacząć poszukiwania(wraz z początkiem http(s), w drugiej linijce trzeba podać limit stron do przeszukania, 0 oznacza, że program przeszuka tylko stronę podaną w pliku. W pozostałych linijkach trzeba podać wzorce do jakich program ma znajdować napisy. Ten wzorzec to nic innego jak regex. Bot ten wchodzi w linki z podanej strony, potem wchodzi w linki z tych linków i tak dalej do momentu trafienia na strony bez nowych linków lub, gdy sprawdzi już ilość stron podaną w limicie. Na tych właśnie stronach są robione poszukiwania. Przykładowy plik konfiguracyjny, dzięki któremu bot zacznie od strony 4programmers.net, przeszuka 1000 linków z tej strony i będzie szukał frazy "bot" oraz sześciocyfrowych liczb szesnastkowych, które poprzedza #, będzie wyglądać tak:

https://4programmers.net/
1000
bot
#[0-9|a-f|A-F]{6}

Program na koniec wygeneruje plik tekstowy, w którym będą strony, na których znaleziono przynajmniej jeden wynik pasujący do choć jednego wzorca, wyświetli napisy pasujące do wzorca oraz ile razy taki napis wystąpił. Program nie jest idealny, bo po trochę ponad 10k stronach się wywala, najprawdopodobniej przez przepełnienie stosu zapchanego przez zmienne lokalne rekurencyjnej funkcji do zapytań. Dlatego też sugerowałbym ustawienie limitu na maksymalnie kilka tysięcy stron. Oprócz tego nie sprawdza poprawności adresu podanej strony i nie jest ogólnie najlepiej napisany. Będę musiał go kompletnie przepisać, aby uzyskać satysfakcjonujący wynik. Pewnie zapytacie się do czego można takiego bota wykorzystać? Do np. masowego wyciągania numerów telefonów czy adresów e-mail czy do sprawdzania, na których stronach występują napisy pasujące do określonego wzorca. Robienie tego ręcznie zajęłoby dużo więcej czasu. Chciałbym się Was zapytać o opinie co sądzicie o tym programie, nie tylko pod względem samej jakości kodu, ale też i praktycznego użycia. Zastanawiam się czy nie dodać do tego programu innych funkcji jak np. zapis wyników do bazy danych czy wykluczanie stron z podanym regexem.