Menu
Jest wolny
rejestracja
Dom  /  Nawigatorzy/ Laws index temat php powered by smf. Lekcja trzecia

Indeks praw temat php obsługiwany przez smf. Lekcja trzecia

Zorganizowany przez Botmaster Labs, nie planowany. Nie ma czasu, wideo jest potrzebne do konkursu, jak nowomodny trend, chociaż łatwiej wszystko wytłumaczyć dobrymi zrzutami ekranu (moje IMHO), a tak naprawdę nie chcę niczego kręcić. Tak więc zostało bardzo mało dochodowych, głupi spam już w ogóle nie rządzi, tutaj trzeba się zastanowić i nikt nie spali tematu, jeśli tylko te przestarzałe spróbują trochę wepchnąć i pudrować w pięknym opakowaniu. :) Ale tu nie chodzi o nas. Generalnie te 3 „nie”, jak sądzę, w zasadzie stały się barierą udziału w konkursie dla większości potencjalnych uczestników. To jak naprawa samochodu z trzech: tanio, wysokiej jakości, szybko - serwis może jednocześnie spełnić tylko 2 warunki. usiądź i wybierz to, co jest ci bliższe. :) Konkurencja jest taka sama: mam czas, mogę robić filmy, ale nie mam tematu, lub mogę zrobić film, mam temat, ale nie mam w ogóle czasu, lub mam wolny czas i mam trochę temka, ale wideo jest przerażające. Ale dobrze, jeśli jednocześnie spełnione są 2 warunki. No dobrze, zostawmy teksty. Będę kontynuował dla siebie. Nie planowałam, co oznacza, że ​​brałam udział w konkursie, nawet wybrałam, na który artykuł będę głosować. Mów, co chcesz, ale Doz bardzo dobrze zna oprogramowanie i bardzo rozsądnie z niego korzysta. Ale dzisiaj dowiedziałem się, że w konkursie pojawiła się intryga. Okazuje się, że nie będę mógł głosować, ale będą mogli to zrobić tylko początkujący, którzy kupili oprogramowanie w 2011 roku i konkurencja jest dla nich przeznaczona. Trochę się zdziwiłem, ale właściciel jest mistrzem. Konkurs jest kampanią reklamową i Aleksander lepiej wie, jak ją przeprowadzić. Ogólnie postanowiłem wtedy opublikować artykuł, nieco łatwiej jest napisać, gdy jest jasne, dla kogo, dla całego kołchozu jest to właściwie niemożliwe.
Długie wprowadzenie dobiegło końca, teraz do rzeczy.
Czego potrzebuje początkujący, gdy nabył taki super kombajn, jakim jest kompleks Xrumer + Hrefer? Zgadza się, naucz się nad tym pracować i odrzuć złudzenie, że zaczynając spamować arkuszami, możesz zarobić pieniądze. Jeśli tak uważasz, od razu przekaż pieniądze na cele charytatywne. Musisz nauczyć się korzystać z narzędzi kompleksu, najlepiej ostrząc go dla siebie. Czas "bierz więcej - rzuć więcej" minął. Ilość ustępuje miejsca jakości. Więc zbierzemy bazę dla siebie, nie ucz się jak to zrobić - zostaniesz w tyle za pociągiem. Oczywiście Hrefer nam w tym pomoże. Jeśli planujesz promować swoje zasoby w Google, musimy również szukać witryn darczyńców za pośrednictwem Google. Myślę, że to jasne i logiczne. Ale Google, jako właściciel miedzianej góry, nie rozdaje wszystkim swojego bogactwa. Potrzebujesz do tego podejścia. Od razu powiem, że nie liczcie na to, że uda wam się coś zebrać na podstawie znaków, które znajdziecie publicznie. Dlatego są dostępne publicznie, ponieważ są bezwartościowe. Nie będę dalej rozwijał tematu. Lepiej powiem ci, jak poprawnie go zmontować, aby zobaczyć wynik, sam dokończysz resztę, najważniejsze jest zrozumienie zasady. Konieczne jest zbieranie na właściwej podstawie na podstawie konkretnych silników, których potrzebujemy, a nie w ogóle na podstawie forów. To jest główny błąd, który popełniają nowicjusze - nie skupiać się na konkretach, ale starać się ogarnąć wszystko w całości. A jednak, jeśli chcesz parsować mniej lub bardziej normalną bazę, odmów jej użycia w zapytaniach operatorskich. Brak „inurl:”, „site:”, „tytuł” ​​itp. Google natychmiast zablokuje wyszukiwarkom takim jak Ty. Dlatego dokładnie badamy silniki, z którymi w obecnie Hrumer działa:

Obsługiwane przez php-Fusion

W wersji Hrumer 7.07 program jest szkolony w kilku nowych silnikach:

forumi.biz, forumb.biz, 1forum.biz, 7forum.biz itp.

phpBB-fr.com, motyw Solarisa phpBB

A proces uczenia się nowych rzeczy trwa nieprzerwanie.
Generalnie musimy przygotować poprawne zapytania do parsowania przez Hrefer. Weźmy jako przykład forumowego djok. Fora SMF... I zacznijmy go rozkładać na części do przeanalizowania. Pomoże nam w tym nasz ukochany Google. Wprowadzanie prośby do Google Fora SMF- w wynikach wyszukiwania jest dużo śmieci, cofamy się do jakiejś 13. strony i wybieramy dowolny link. Natknąłem się na ten: http://www.volcanohost.com/forum/index.php?topic=11.0. Otwieramy i badamy. Musimy znaleźć na stronie coś charakterystycznego, co da się zastosować do wyszukiwania innych stron w tym silniku. W stopce dostrzegamy następujący napis Obsługiwane przez SMF 1.1.14, cytujemy go i wpisujemy do Google, pokazuje nam, że dla tego żądania zna około 59 milionów opcji. Szybko przeglądamy linki, dodajemy kilka lub dwie dodatkowe opcje do tego słowa kluczowego, na przykład "Powered by SMF 1.1.14" topola lub "Zasilany przez SMF 1.1.14" viagra... Jesteśmy przekonani, że prośba jest wspaniała, w wynikach są tylko fora i prawie nie ma dla ciebie śmieci.

Poza tym nie interesuje nas ilość, ale jakość, jak wspomniałem powyżej. Pójść dalej. Z tego samego forum bierzemy ze stopki kolejną frazę: , cytujemy go również i przesyłamy do Google. W odpowiedzi zdradza, że ​​zna ponad 13 milionów wyników. Ponownie przeglądamy wyniki wyszukiwania, dodajemy dodatkowe słowa i sprawdzamy z nimi wyniki. Dbamy o to, aby zapytanie było świetne i prawie nie było śmieci. Ogólnie rzecz biorąc, są już 2 prośby o żelazo. Sugeruję na razie zostawić pierwsze forum w spokoju i kontynuować zbieranie próśb na inne fora. Na szczęście Google jest otwarte na życzenie 2006-2008, Proste maszyny LLC... Z wyników bierzemy na przykład te fora: http://www.snowlinks.ru/forum/index.php?topic=1062.0 i http://litputnik.ru/forum/index.php?action=printpage; topic=380.0 w ich stopkach wpisujemy zapytania: "Powered by SMF 1.1.7" oraz "Powered by SMF 1.1.10" (zawsze radzę jechać w cudzysłowie dla Hrefer, bo przede wszystkim potrzebna jest jakość). Myślę, że jest jasne, co robimy, w końcu będziemy mieli pewną bazę zapytań do wyszukiwania forów na silniku SMF (jest wybrany na przykład, z resztą silników jest tak samo).
Będzie to wyglądać mniej więcej tak:

"Zasilany przez SMF 1.1.2"

"Zasilany przez SMF 1.1.3"

"Zasilany przez SMF 1.1 RC2"

„Zasilany przez SMF 1.1.4”

"Zasilany przez SMF 1.1.8"

"Zasilany przez SMF 1.1.7"

"2006-2008, Simple Machines LLC"

I to nie wszystko. Podczas zbierania wersji silników, na niektórych forach SMF w stopce znajdujemy nadvis "2001-2006, Lewis Media". Sprawdzamy tę prośbę, również w pełni nas satysfakcjonuje. Znajdujemy podobne zapytanie: "2001-2005, Lewis Media". Przechodząc przez stopki natrafiamy na zapytanie: "SMFone design by A.M.A, przeniesiony do SMF 1.1". Sprawdzamy - doskonale. Itp. Pół godziny pracy i masz cudowną bazę zapytań do silnika, a Google będzie zbanowany za te zapytania znacznie rzadziej, niż gdybyś używał w nich operatorów. A jednocześnie Twoja baza danych będzie znacznie czystsza niż w przypadku zapytań typu „index.php? Topic =", bo tutaj Google poda nie tylko fora, których potrzebujemy, ale także dużo pozostawionych zasobów, na których nam się udało wyjechać link do tematu forum. Możesz się spierać, mówią, co w tym złego? Inni zostawili link, co oznacza, że ​​możemy. Ale! Linki może pozostawić nie tylko Hrumer, ale także inne programy. ponadto można je specjalnie zaostrzyć, aby pozostawić komentarze w określonym zasobie, tzw. wysokospecjalistyczne oprogramowanie, plus takie linki można pozostawić ręcznie. Powtarzam, to nie ilość śmieci jest dla nas ważna, ale jakość, baza poprawne zapytania i tak go odbierzemy. Plus Ta metoda także tym, że praktycznie nie trzeba będzie konfigurować w Hrefer sito -filtr , możesz go po prostu wyłączyć, bo Google praktycznie nie da ci śmieci.


Uważam, że bardzo ważne jest nauczenie się prawidłowego korzystania z Hrefera na początkowym etapie, ponieważ po nauczeniu się tego zawsze można znaleźć zastosowanie dla Hrumera, bez względu na to, jak zmieni się sytuacja. Obrona staje się bardziej skomplikowana, a jeśli na niektórych typach silników ochrona została wzmocniona i nie może sobie z nią poradzić w ten moment Hrumer, to nie ma sensu wydawać środków na zbieranie tych linków, a potem na pracę nad nimi z Hrumerem, lepiej skoncentrować swoje wysiłki na tym, co daje wynik. A jednocześnie, jeśli zespół Botmaster Labs nauczył Hrumera czegoś nowego, możesz szybko przeprowadzić sekcję nowego pacjenta i przygotować bazę dla Hrumera, gdy pacjent jest jeszcze letni. Czas to pieniądz, zasób może już nie mieć znaczenia przy zakupie bazy. zebrane przez kogoś. Ponadto prawidłowe zbieranie baz dla siebie znacznie rozszerza „białe” zastosowanie Hrumera. I tu właśnie wszystko się porusza, czy nam się to podoba, czy nie, a proces wybielania lub siwienia trwa. Czarne prześcieradła to już przeszłość.
Całą resztę, już techniczne aspekty pracy z Hreferem, można zobaczyć w pomocy i nie ma sensu się nad nimi rozwodzić, wszystkie cele-punkty-sekundy ustalane są empirycznie dla każdego samochodu indywidualnie.
Jako bonus zamieszczę tutaj szablon do parsowania chińskiej wyszukiwarki Baidu, któregoś dnia zostałem o to zapytany, więc zrobiłem to w przerwach, przepraszam za kalambur. :)


Nazwa hosta = http://www.baidu.com
Zapytanie = s? Wd =
LinkiMaska =
Suma stron = 100
Następna strona =

Następna strona2 =

CaptchaURL =
Obraz Captcha =
Pole Captcha =


Próbowałem parsować je testem, nie było bana, Hrefer zbierał zasoby żywo, wszystkie żądania parsowania były podobne do Google, ale chińskie zasoby były morzem i z wysokim PR, a poza tym było wiele miejsc, w których Stopa Europejczyka nie zeszła. Lepiej jest analizować z chińskimi prośbami. Pomoże to w tłumaczeniu przez Google, wpisaniu listy słów kluczowych w języku rosyjskim i przetłumaczeniu jej na chiński. Prawda w „ słowa„Słowa hrefer nie mogą być dodawane w języku chińskim, musisz je przekodować.
Zamiast chińskiego:

伟哥 - viagra

吉他 - gitara

其他 - odpoczynek

保险公司 - ubezpieczenie

Umieść te kody, aby je zastąpić w pliku tekstowym:

% E4% BC% 9F% E5% 93% A5

% E5% 90% 89% E4% BB% 96

% E5% 85% B6% E4% BB% 96

% E4% BF% 9D% E9% 99% A9% E5% 85% AC% E5% 8F% B8

Jeśli promujesz stronę internetową dotyczącą ubezpieczenia, to umieszczając w swoim profilu link na tematyczny (!) Nawet chińskie forum znalezione na żądanie ” Forum SMF "保险公司 będzie bardzo miło.
Podsumowując, chciałbym powiedzieć, że nigdy nie zrozumiałem ludzi, którzy narzekali, że Khrefers są źli lub nie nabazgrali, zawsze chciałem to powiedzieć, po prostu nie umiesz ich ugotować. Lepiej niż hrefer, żaden parser nie wie, jak zbierać wyniki, tylko żądania muszą być poprawne. Hrefer to samochód: dobry, solidny, wykonany po niemiecku, ale człowiek nim jeździ i wszystko zależy od tego, jak mądrze się je prowadzi, nie można zmusić auta do jazdy w prawo i lewo jednocześnie.
Osobnym tematem jest czyszczenie baz, które kiedyś robiłem 3 lata temu na poprzedni konkurs. Przy większej ilości wszystko jest tam nadal aktualne, ale teraz możesz odmówić sprawdzenia 200 OK, naprawdę nie podobał mi się ten proces, błędy były bardzo duże, odfiltrowano wiele niepotrzebnych rzeczy. Teraz można to zrobić prawie automatycznie w trakcie pracy Hrumera, chociaż proces ten nie jest kompletnym odpowiednikiem sprawdzania "200 OK". Ogólnie rzecz biorąc, do rzeczy: nie tak dawno w Hrumerze pojawiła się wspaniała okazja - rabowania informacji z zasobów w czasie trwania projektu. To wygląda tak. Jedziesz w szablonie, który będzie przetwarzany w procesie, a informacje zebrane z szablonu zostaną wprowadzone do pliku xgrabbed.txt w folderze Logs. Możesz użyć tej funkcji do wszystkiego, lot wyobraźni jest ogromny. Korzystam z tej funkcji raz w tygodniu, aby usunąć „wygasłe” linki z działającej bazy danych. Nie jest tajemnicą, że fora codziennie wymierają, aby oczyścić bazę z takich zasobów, a narzędzie „Autograbbing” nam w tym pomoże.
Mimo wszystko trzeba przyznać, często wpisując np. http://www.laptopace.com/index.php widzimy, że ta domena jest już np. gaddyad, ale nie ma tam forum. Aby więc wyrzucić ten żużel z bazy, będziemy łupić. :) Otwórz kod źródłowy strony i zobacz tam ten wpis:

laptopace.com
Aby chwycić, przekształć to w
[...]

Teraz wszyscy „umarli” z goudaddi będą nam znani po imieniu.
Oto mały wybór narzędzia „Autograbbing”, jeśli chcesz wyczyścić bazę danych z różnych „wygasłych” domen:


[...]

[...]
[...]
[...]

[...]
Ta domena może być na sprzedaż. [...] Kup tę domenę

[...]<body bgcolor="#ffffff" text="#000000"> </span><br>Lista nie jest kompletna, ale myślę, że pomoże ci to nie gonić wiele razy za wielomilionowymi bazami śmieci. Nie jest trudno stworzyć szablon, otworzyć wygasły link i stworzyć maskę szablonu. <br>Korzystając z tego samego autograbbingu, możesz również przeskanować istniejące bazy danych i posortować je według zasobów, dzieląc je na silniki.Sortowanie baz danych według silników pozwoli Ci jak najlepiej wykorzystać wszystkie możliwości i ustawienia Hrumera, w szczególności naukę proces. A poza tym za pomocą Autograbbing możesz usunąć śmieci z baz danych, jeśli wolisz zbierać je nie przez Hrefer, ale pobierając z wszelkiego rodzaju usług hostingu plików. Aby to zrobić, albo trzeba zrobić maskę do wybierania forów, a następnie pobierać z bazy tylko to, co maska ​​przechwyci, albo wręcz przeciwnie zrobić maskę dla nie-forów, a następnie usunąć to, co zostanie przechwycone. Pierwsza opcja jest bardziej logiczna i bardziej niezawodna, ponieważ dokładnie wiemy, czego szukać. <br>Powodzenia w pracy. <br>PySy. Zrobiłem wąsko skupiony film (byłem już zmęczony, zrobiłem to pierwszy raz :)), choć Hrefer wystartowałem z mojej domowej maszyny, prędkość netto nie jest zbyt dobra, tutaj mam kopie tylko do testów, więc nie obwiniaj mnie za szybkość pracy. :) <br><p><span class="BlWV-EuxoOk"></span></p> <h4>16 komentarzy:</h4> <p>jeka komentarze ...</p><p>W jakim programie wybrałeś słowa kluczowe?</p> Serge Glazko komentuje ... <p>jeśli potrzebuję zebrać zasoby tematyczne, to wybieram słowa w Words za pomocą długopisów i przez Adwords. ale w wielu tematach słowa zostały już dla mnie wybrane, tutaj mogę tylko dodawać-usuwać niektóre słowa, ale też nie automatycznie, ale przeglądać je wszystkie.</p> <p>Zacznijmy od razu od głównego kodu skryptu:</p> <p>#!/usr/bin/perl</p><p># skrypt what-forum.pl <br><span># (c) 2010 Aleksandr A Aleksiejew, http: // strona /</p><p>używaj ścisłego;</p><p># skomentowane linie - dla ścisłości</span><br><span># jeśli zadaniem jest zbieranie statystyk silnika, zostaw je bez zmian</span><br><span># jeśli robisz listę forów - odkomentuj</p><p>moje dane $; <br>$ danych. = $ _ podczas (<> ) ; </p><p># sprawdź ile Powered by phpBB było bez linku w stopce</span><br>drukuj "phpbb <span>\ n "</span><br>jeśli (dane $ = ~ <span>/<a[^>] + href = "[^"] * http: \ / \ / (?: www \.)? phpbb \ .com \ /? "[^>] *> phpBB / i</span> lub <br><span># $ data = ~ /viewforum\.php\?"^""")*f=\d+/i lub</span><br>$ data = ~ / phpBB \ -SEO / i lub <br>$ dane = ~ <span>/<link rel="copyright" href="(?:http:\/\/)?phpBB\.com"/i </span>) ; <br>drukuj „ipb <span>\ n "</span><br>jeśli (dane $ = ~ <span>/<a[^>] + href = "[^"] * http: \ / \ / (?: www \.)? invision (?: tablica | zasilanie) \. com \ /? [^ "] *" [^>] *> [^<]*IP\.Board/i </span> lub <br>$ dane = ~ <span>/<a[^>] + href = "[^"] * http: \ / \ / (?: www \.)? invisionboard \ .com \ /? "[^>] *> Invision Power Board / i</span> lub <br>$ dane = ~ <span>/<div id=[""]{0,1}ipbwrapper[""]{0,1}>/ i</span> lub <br>$ dane = ~ <span>/index\.php\?†^""†*showforum=\d+/i</span>) ; <br>drukuj „vbulletin <span>\ n "</span><br>jeśli (dane $ = ~ <span>/ Obsługiwane przez:?[^<]+vBulletin[^<]+(?:Version)?/i </span> lub <br>$ dane = ~ <span>/<meta name="generator" content="vBulletin/i </span> lub <br>$ dane = ~ <span>/forumdisplay\.php\?†^""†*f=\d+/i</span>) ; <br>drukuj „smf <span>\ n "</span><br>jeśli (dane $ = ~ <span>/<a[^>] + href = "[^"] * http: \ / \ / (?: www \.)? simplemachines \ .org \ /? "[^>] *> Powered by SMF / i</span> lub <br>$ dane = ~ <span>/index\.php\?†^"""*tablica=\d+\.0/i</span>) ; <br>drukuj „punbb <span>\ n "</span><br>jeśli (dane $ = ~ <span>/<a[^>] + href = "[^"] * http: \ / \ / (? :( ?: www \.)? punbb \ .org | punbb \ .informer \ .com) \ /? "[^>] *> PunBB / i</span>); #lub <br><span># $ data = ~ /viewforum\.php\?†^"""*id=\d+/i);</span><br>drukuj „fluxbb <span>\ n "</span><br><span># if ($ data = ~ /viewtopic\.php\?id=\d+/i or</span><br>jeśli (dane $ = ~ <span>/<a[^>] + href = "http: \ / \ / (?: www \.) fluxbb \ .org \ /?" [^>] *> FluxBB / i</span>) ; <br>drukuj "exbb <span>\ n "</span><br>jeśli (dane $ = ~ <span>/<a[^>] + href = "[^"] * http: \ / \ / (?: www \.)? exbb \ .org \ /? "[^>] *> ExBB / i</span>); # lub <br><span># $ data = ~ /forums\.php\?†^"""*forum=\d+/i);</span><br>drukuj „yabb <span>\ n "</span><br>jeśli (dane $ = ~ <span>/<a[^>] + href = "[^"] * http: \ / \ / (?: www \.)? yabbforum \ .com \ /? "[^>] *> YaBB / i</span> lub <br>$ data = ~ /YaBB\.pl\?†^"""**num=\d+/i); <br>drukuj "dleforum" <span>\ n "</span><br>jeśli (dane $ = ~ <span>/ \ (Obsługiwane przez forum DLE \)<\/title>/ i</span> lub <br>$ dane = ~ <span>/<a[^>] + href = "[^"] + (?: http: \ / \ / (?: www \.)? dle \ -files \ .ru | act = copyright) [^ "] *"> DLE Forum<\/a>/ i</span>) ; <br>drukuj „ikonboard <span>\ n "</span><br>jeśli (dane $ = ~ <span>/<a[^>] + href = "[^"] * http: \ / \ / (?: www \.)? ikonboard \ .com \ /? [^ "] *" [^>] *> Ikonboard / i</span> lub <br>$ dane = ~ <span>/<meta name="GENERATOR" content="Ikonboard/i </span> lub <br>$ data = ~ /ikonboard\.cgi/i); <br>drukuj "bbpress <span>\ n "</span><br>jeśli (dane $ = ~ <span>/<meta name="generator" content="bbPress/i </span>); # lub <br><span># $ data = ~ /topic\.php\?id=\d+/i lub</span><br><span># $ data = ~ /forum\.php\?id=\d+/i);</span><br>drukuj "flashbb <span>\ n "</span><br><span># if ($ data = ~ /forums\.php\?fid=\d+/i or</span><br><span># $ data = ~ /topic\.php\?fid=\d+/i lub</span><br>jeśli (dane $ = ~ <span>/<a[^>] + href = "http: \ / \ / (?: www \.)? flashbb \ .net \ /?" [^>] *> FlashBB / i</span>) ; <br>drukuj „stokesit <span>\ n "</span><br><span># if ($ data = ~ /forum\.php\?f=\d+/i lub</span><br>jeśli (dane $ = ~ <span>/<a[^>] + href = "http: \ / \ / (?: www \.)? stokesit \ .com \ .au \ /?" [^>] *> [^ \ /] * Stokes IT / i</span>) ; <br>drukuj „podium <span>\ n "</span><br><span># if ($ data = ~ /topic\.php\?t=\d+/i lub</span><br>jeśli (dane $ = ~ <span>/<a[^>] + href = [""]? http: \ / \ / (?: www \.)? sopebox \ .com \ /? [""]? [^>] *> Podium / i</span>) ; <br>drukuj "usebb <span>\ n "</span><br><span># if ($ data = ~ /forum\.php\?id=\d+/i lub</span><br>jeśli (dane $ = ~ <span>/<a[^>] + href = "http: \ / \ / (?: www \.)? usebb \ .net \ /?" [^>] *> UseBB / i</span>) ; <br>drukuj "wrforum <span>\ n "</span><br><span># if ($ data = ~ /index\.php\?fid=\d+/i lub</span><br>jeśli (dane $ = ~ <span>/<a[^>] + href = "http: \ / \ / (?: www \.)? wr \ -script \ .ru \ /?" [^>] *> WR \ -Forum / i</span>) ; <br>drukuj "jetanotherforumnet" <span>\ n "</span><br>if ($ data = ~ / Yet Another Forum \ .net / i or <br>$ dane = ~ <span>/default\.aspx\?g=posty&t=\d+/i</span>) ; </p> <p>Znajdziesz ten i inne skrypty wymienione we wpisie w tym archiwum.</p> <p>Scenariusz <i>które-forum.pl</i> sprawdza kod strony html pod kątem obecności w niej sygnatur silnika forum. Podobną technikę zastosowaliśmy przy definiowaniu WordPressa i Joomla, ale jest kilka różnic. Po pierwsze, sam skrypt nie ładuje kodu strony, ale odczytuje go ze standardowego wejścia lub pliku przekazanego jako argument. Pozwala to na jednokrotne załadowanie strony np. za pomocą wget, a następnie przepuszczenie jej przez kilka analizatorów, jeśli mamy więcej niż jeden. Po drugie, w tym skrypcie obecność sygnatury jest w 100% oznaką silnika. Ostatnim razem obecność sygnatury nadawała wagę tylko odpowiedniemu silnikowi i silnik o największej masie „wygrał”. Uznałem, że w tym przypadku takie podejście tylko niepotrzebnie skomplikuje kod.</p> <p>Aby przetestować działanie skryptu, przeprowadziłem małe badania. Zrobiłem listę kilku tysięcy forów i przejrzałem każde z nich przez mój skrypt, określając w ten sposób procent wyzwalaczy programów i popularność różnych silników.</p> <p>Użyłem mojego parsera Google, aby uzyskać listę forów. <a href="https://mkr-novo2.ru/pl/problems/5-samyh-populyarnyh-poiskovyh-sistem-poiskovye-sistemy-rossii-i-lidiruyushchie.html">Wyszukiwarka</a> prośby zostały wysłane jak</p> <p>strona: forum.*.ru <br>strona: rozmowa.*.ru <br>strona: deska.*.ru <br>strona internetowa: smf.*.ru <br>strona: phpbb.*.ru <br> ....</p> <p>itp. Pełny kod generatora zapytań można znaleźć w pliku <i>gen-forumsearch-urls.pl</i>... Oprócz zone.ru ,.su .ua .kz i.by były również używane. Ostatnim razem trudno było przeprowadzić to badanie, ponieważ witryny WordPress i Joomla nie mają takich sygnatur w swoich adresach URL. Katalogi takie jak cmsmagazine.ru/catalogue/ nie zapewniają wystarczającej wielkości próbki. Czym jest 600 witryn Drupala?</p> <p>Muszę przyznać, że wyniki eksperymentu mnie zdenerwowały. Spośród 12 590 przebadanych miejsc tylko 7083 zostało pomyślnie zidentyfikowanych z silnikiem, czyli tylko w 56% przypadków. Może brakowało mi jakiegoś silnika? Czy Bitrix naprawdę był na połowie forów? A może powinienem poświęcić więcej czasu na szukanie podpisów? Ogólnie rzecz biorąc, wymagane są tutaj dalsze badania.</p> <p>Wśród 56% pomyślnie zidentyfikowanych silników, zgodnie z oczekiwaniami, najbardziej popularne były IPB (31%), phpBB (26,6%) oraz vBulletin (26,5%)</p> <p>Tuż za nimi plasują się SMF (5,8%) i DLEForum (5,3%). Mój ulubiony punBB był dopiero na 6 miejscu (1,64%). Nie polecałbym mocno ufać tym liczbom (mówią, że co trzecie forum w RuNet działa na IPB), ale oczywiście można wyciągnąć pewne wnioski.</p> <p>Na przykład, jeśli zamierzasz stworzyć stronę internetową na silniku forum i planujesz zmodyfikować forum, powiedzmy zapłacić użytkownikom 0,01$ za każdą wiadomość z automatyczną wypłatą środków raz w tygodniu, powinieneś wybrać jeden z trzech najpopularniejszych silników . Im bardziej popularne forum, tym większe prawdopodobieństwo znalezienia programisty, który jest w nim dobrze zorientowany.</p> <p>Jeśli nie przewiduje się znaczących zmian w silniku, to warto wybrać nie najpopularniejszy silnik, na przykład SMF lub punBB. Zmniejszy to liczbę ataków hakerskich na twoje forum i ilość automatycznie wysyłanego na nie spamu.</p> <p>Skrypty do wyszukiwania / definiowania forów mogą również znaleźć więcej niż jedno <a href="https://mkr-novo2.ru/pl/education/neironnye-seti-prakticheskoe-primenenie-chemu-v-rossii.html">praktyczne użycie</a>... Pierwszą rzeczą, jaka mi osobiście przyszła do głowy, było posortowanie zidentyfikowanych forów według TCI i umieszczenie postów na pierwszej setce z linkami do jednej z ich witryn. Jednak setka linków dofollow forum nie wpłynęła w żaden sposób na TCI (przeszły 2 aktualizacje), więc lepiej tu nie marnować czasu, chyba że interesują Cię przejścia.</p> <p>Oczywiste jest, że nazwane użycie skryptów nie jest jedynym. Myślę, że możesz łatwo wymyślić, jak jeszcze możesz ich użyć.</p> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> </div> </div> </div> </div> <aside class="col-lg-4 col-md-12 col-md-offset-4 col-lg-offset-0" id="right"> <div> </div> <br/> <div> </div> <br/> <div> </div> <br/> <div> </div> <br/> </aside> </div> </div> </div> <div class="popup" id="share"> <div class="perfect-scroll" style="text-align: center"> <div style="margin-bottom: 20px"> <strong>Pobieranie rozpocznie się teraz ...</strong> <br>Nie zapomnij udostępnić materiału <br>w sieciach społecznościowych z Twoim <br>koledzy</div> <div> <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,moimir,gplus" data-counter=""></div> </div> </div> <div class="close-pop pull-right"> <svg width="10px" height="10px" viewBox="0 0 10 10"> <path fillrule="evenodd" d="M 6.41 5C 6.41 5 9.24 7.83 9.24 7.83 9.63 8.22 9.63 8.85 9.24 9.24 8.85 9.63 8.22 9.63 7.83 9.24 7.83 9.24 5 6.41 5 6.41 5 6.41 2.17 9.24 2.17 9.24 1.78 9.63 1.15 9.63 0.76 9.24 0.37 8.85 0.37 8.22 0.76 7.83 0.76 7.83 3.59 5 3.59 5 3.59 5 0.76 2.17 0.76 2.17 0.37 1.78 0.37 1.15 0.76 0.76 1.15 0.37 1.78 0.37 2.17 0.76 2.17 0.76 5 3.58 5 3.58 5 3.58 7.83 0.76 7.83 0.76 8.22 0.37 8.85 0.37 9.24 0.76 9.63 1.15 9.63 1.78 9.24 2.17 9.24 2.17 6.41 5 6.41 5Z"></path> </svg> </div> </div> <section id="views"> <div class="container"> </div> </section> <script type="text/javascript"> $(document).ready( function () { $('.kursiv').readmore({ speed: 75, maxHeight: 84, heightMargin: 16, moreLink: '<a href="#"><span>Показать полностью</span>', lessLink: '<a href="#"><span>Скрыть</span></a>', } ); } ); </script> <style> div.kursiv { margin-bottom: 0; } #razrabotka { margin-top: 30px; } .readmore-js-toggle { font-style: italic; color: #999; display: inline; margin-right: 10px; font-size: 14px; cursor: pointer; border-bottom: 1px dotted #e6e6e6; } </style></section> <footer> <div class="container"> <div class="row"> <div class="col-xs-16 col-sm-4 col-md-3"> <p>© 2021, mkr-novo2.ru, Internet. Edukacja. Programy. Oprogramowanie układowe. Instalacja i konfiguracja. Nawigatorzy</p> <div class="social"> <a target="_blank" href=""> <svg width="32px" height="19px" viewBox="0 0 32 19"> <path fillRule="evenodd" d="M 15.36 18.01C 15.36 18.01 17.24 18.01 17.24 18.01 17.24 18.01 17.81 17.94 18.1 17.64 18.36 17.37 18.35 16.85 18.35 16.85 18.35 16.85 18.32 14.41 19.49 14.05 20.64 13.7 22.12 16.4 23.69 17.45 24.87 18.23 25.77 18.06 25.77 18.06 25.77 18.06 29.97 18.01 29.97 18.01 29.97 18.01 32.16 17.87 31.12 16.21 31.03 16.07 30.51 14.97 28 12.72 25.37 10.35 25.72 10.74 28.89 6.65 30.82 4.16 31.59 2.65 31.35 2 31.12 1.38 29.7 1.54 29.7 1.54 29.7 1.54 24.98 1.57 24.98 1.57 24.98 1.57 24.63 1.52 24.37 1.67 24.12 1.82 23.95 2.16 23.95 2.16 23.95 2.16 23.21 4.09 22.21 5.72 20.11 9.18 19.27 9.36 18.92 9.15 18.12 8.65 18.32 7.14 18.32 6.07 18.32 2.72 18.85 1.32 17.3 0.96 16.79 0.84 16.41 0.76 15.1 0.75 13.41 0.73 11.99 0.76 11.18 1.14 10.64 1.39 10.23 1.96 10.48 1.99 10.79 2.03 11.5 2.18 11.88 2.67 12.36 3.31 12.34 4.74 12.34 4.74 12.34 4.74 12.62 8.68 11.69 9.17 11.06 9.5 10.18 8.82 8.31 5.68 7.35 4.08 6.62 2.3 6.62 2.3 6.62 2.3 6.48 1.97 6.23 1.8 5.93 1.58 5.51 1.51 5.51 1.51 5.51 1.51 1.02 1.54 1.02 1.54 1.02 1.54 0.35 1.56 0.1 1.84-0.12 2.09 0.08 2.62 0.08 2.62 0.08 2.62 3.6 10.57 7.57 14.57 11.22 18.25 15.36 18.01 15.36 18.01 15.36 18.01 15.36 18.01 15.36 18.01Z"/> </svg> </a> <a target="_blank" href=""> <svg viewBox="0 0 25 25" width="25px" height="25px"> <path class="st0" d="M12.5,12.7c3.2,0,5.8-2.6,5.8-5.8c0-3.2-2.6-5.8-5.8-5.8C9.3,1,6.7,3.6,6.7,6.8C6.7,10,9.3,12.7,12.5,12.7z M12.5,3.9c1.6,0,2.9,1.3,2.9,2.9c0,1.6-1.3,2.9-2.9,2.9c-1.6,0-2.9-1.3-2.9-2.9C9.6,5.2,10.9,3.9,12.5,3.9z M19.2,13.4 c-0.3-0.7-1.2-1.2-2.5-0.3c-1.6,1.3-4.3,1.3-4.3,1.3s-2.6,0-4.3-1.3c-1.2-1-2.1-0.4-2.5,0.3c-0.6,1.2,0.1,1.7,1.5,2.7 c1.3,0.8,3,1.1,4.1,1.2l-0.9,0.9c-1.3,1.3-2.6,2.6-3.4,3.4c-0.5,0.5-0.5,1.4,0,1.9l0.2,0.2c0.5,0.5,1.4,0.5,1.9,0l3.4-3.4 c1.3,1.3,2.6,2.6,3.4,3.4c0.5,0.5,1.4,0.5,1.9,0l0.2-0.2c0.5-0.5,0.5-1.4,0-1.9l-3.4-3.4l-0.9-0.9c1.1-0.1,2.8-0.4,4.1-1.2 C19.2,15.1,19.8,14.5,19.2,13.4z"/> </svg> </a> <a target="_blank" href="https://facebook.com/"> <svg width="26px" height="25px" viewBox="0 0 26 25"> <path fillRule="evenodd" d="M 24.33-0C 24.33-0 1.96-0 1.96-0 1.19-0 0.57 0.62 0.57 1.38 0.57 1.38 0.57 23.62 0.57 23.62 0.57 24.38 1.19 25 1.96 25 1.96 25 14 25 14 25 14 25 14 15.32 14 15.32 14 15.32 10.72 15.32 10.72 15.32 10.72 15.32 10.72 11.54 10.72 11.54 10.72 11.54 14 11.54 14 11.54 14 11.54 14 8.76 14 8.76 14 5.53 15.98 3.77 18.88 3.77 20.27 3.77 21.46 3.88 21.81 3.92 21.81 3.92 21.81 7.3 21.81 7.3 21.81 7.3 19.8 7.3 19.8 7.3 18.22 7.3 17.92 8.04 17.92 9.13 17.92 9.13 17.92 11.54 17.92 11.54 17.92 11.54 21.68 11.54 21.68 11.54 21.68 11.54 21.19 15.32 21.19 15.32 21.19 15.32 17.92 15.32 17.92 15.32 17.92 15.32 17.92 25 17.92 25 17.92 25 24.33 25 24.33 25 25.09 25 25.71 24.38 25.71 23.62 25.71 23.62 25.71 1.38 25.71 1.38 25.71 0.62 25.09-0 24.33-0Z"/> </svg> </a> <a target="_blank" href="https://youtube.com/"> <svg width="26px" height="19px" viewBox="0 0 26 19"> <path fillRule="evenodd" d="M 25.75 14.46C 25.75 14.46 25.5 16.18 24.75 16.93 23.79 17.92 22.72 17.93 22.23 17.99 18.71 18.24 13.43 18.25 13.43 18.25 13.43 18.25 6.89 18.19 4.88 18 4.32 17.89 3.06 17.92 2.11 16.93 1.35 16.18 1.11 14.46 1.11 14.46 1.11 14.46 0.86 12.45 0.86 10.44 0.86 10.44 0.86 8.55 0.86 8.55 0.86 6.54 1.11 4.52 1.11 4.52 1.11 4.52 1.35 2.81 2.11 2.05 3.06 1.06 4.14 1.06 4.63 1 8.15 0.75 13.42 0.75 13.42 0.75 13.42 0.75 13.43 0.75 13.43 0.75 13.43 0.75 18.71 0.75 22.23 1 22.72 1.06 23.79 1.06 24.75 2.05 25.5 2.81 25.75 4.52 25.75 4.52 25.75 4.52 26 6.54 26 8.55 26 8.55 26 10.44 26 10.44 26 12.45 25.75 14.46 25.75 14.46ZM 10.83 5.73C 10.83 5.73 10.83 12.72 10.83 12.72 10.83 12.72 17.62 9.24 17.62 9.24 17.62 9.24 10.83 5.73 10.83 5.73Z"/> </svg> </a> </div> </div> <div class="col-lg-2 col-sm-4 col-xs-16 links"> <h4>mkr-novo2.ru</h4> <a href="https://mkr-novo2.ru/pl/category/internet/">Internet</a> <a href="https://mkr-novo2.ru/pl/category/multimedia/">Multimedia</a> <a href="https://mkr-novo2.ru/pl/category/navigation/">Nawigatorzy</a> <a href="https://mkr-novo2.ru/pl/category/education/">Edukacja</a> <a href="https://mkr-novo2.ru/pl/category/at/">NA</a> <a href="https://mkr-novo2.ru/pl/category/problems/">Problemy</a> </div> <div class="col-lg-2 col-sm-3 col-xs-16 links"> <h4>o projekcie</h4> <a href="">Sprzężenie zwrotne</a> <a href="">O stronie</a> </div> <div class="col-lg-5 col-sm-1 col-xs-16 links"></div> <div class="col-lg-4 col-sm-5 col-xs-16 links"> </div> </div> <div class="row v-center"> <div class="col-md-8 col-xs-16"> <a data-fancybox data-type="iframe" data-src="">Łączność</a> </div> <div class="col-md-8 col-xs-16"> <div class="share pull-right"> <script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script> <script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script> <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,moimir,gplus" data-counter=""></div> </div> </div> </div> </div> </footer> <a href="#bot" id="to-top"> <svg width="50px" height="50px" viewBox="0 0 50 50"> <circle cx="25.00" cy="25.00" r="25.00" fill="rgb(0,0,0)" opacity="0.37"/> <path fillRule="evenodd" d="M 33.94 24.46C 33.94 24.46 25.89 16.3 25.89 16.3 25.32 15.73 24.41 15.73 23.84 16.3 23.84 16.3 15.79 24.46 15.79 24.46 14.88 25.38 15.52 26.97 16.81 26.97 16.81 26.97 20.43 26.97 20.43 26.97 21.23 26.97 21.88 27.62 21.88 28.43 21.88 28.43 21.88 32.51 21.88 32.51 21.88 33.71 22.83 34.68 24.01 34.68 24.01 34.68 25.72 34.68 25.72 34.68 26.9 34.68 27.86 33.71 27.86 32.51 27.86 32.51 27.86 28.43 27.86 28.43 27.86 27.62 28.5 26.97 29.31 26.97 29.31 26.97 32.92 26.97 32.92 26.97 34.21 26.97 34.85 25.38 33.94 24.46Z" fill="rgb(241,241,241)"/> </svg> </a> <div class="overlay"></div> <div class="popup" id="password"> <div class="perfect-scroll"> <h2>Odzyskiwanie hasła <div class="close-pop pull-right"> <svg width="10px" height="10px" viewBox="0 0 10 10"> <path fillRule="evenodd" d="M 6.41 5C 6.41 5 9.24 7.83 9.24 7.83 9.63 8.22 9.63 8.85 9.24 9.24 8.85 9.63 8.22 9.63 7.83 9.24 7.83 9.24 5 6.41 5 6.41 5 6.41 2.17 9.24 2.17 9.24 1.78 9.63 1.15 9.63 0.76 9.24 0.37 8.85 0.37 8.22 0.76 7.83 0.76 7.83 3.59 5 3.59 5 3.59 5 0.76 2.17 0.76 2.17 0.37 1.78 0.37 1.15 0.76 0.76 1.15 0.37 1.78 0.37 2.17 0.76 2.17 0.76 5 3.58 5 3.58 5 3.58 7.83 0.76 7.83 0.76 8.22 0.37 8.85 0.37 9.24 0.76 9.63 1.15 9.63 1.78 9.24 2.17 9.24 2.17 6.41 5 6.41 5Z"/> </svg> </div> </h2> <div class="recover-success"> <form action="/recovery/request" data-method="post" method="post" class="recover_form"> <p>Wpisz swój adres e-mail, aby odzyskać hasło!</p> <div class="input-wrp"> <input name="email" type="text" placeholder="Wprowadź swój email"> </div> <input type="submit" data-disable-with="Отправить..." class="btn green" value="wysłać"> </form> </div> <div class="auth-form_error" style="padding-top: 10px"></div> </div> </div> <script> $('.user.one').click(function (e, ob) { $('.user').removeClass('active-user'); $('.user.one').addClass('active-user'); $('#user_type').val('1'); e.stopPropagation(); } ); $('.user.two').click(function (e, ob) { $('.user').removeClass('active-user'); $('.user.two').addClass('active-user'); $('#user_type').val('2'); e.stopPropagation(); } ); $('.user.three').click(function (e, ob) { $('.user').removeClass('active-user'); $('.user.three').addClass('active-user'); $('#user_type').val('3'); e.stopPropagation(); } ); function clearErrors() { $('.auth-form_error').each(function () { $(this).html(''); } ); } $('body').on('click', '.open-login-form', function (e) { $('#register, .overlay').removeClass('visible-pop'); $('#login, .overlay').addClass('visible-pop'); e.preventDefault(); } ); $('body').on('click', '.open-pass-form', function (e) { $('#register, .overlay').removeClass('visible-pop'); $('#password, .overlay').addClass('visible-pop'); e.preventDefault(); } ); $('.login_form') .on('ajax:beforeSend', function (event, xhr, settings) { clearErrors(); } ) .on('ajax:complete', function (event, xhr, status) { } ) .on('ajax:success', function (event, data, status, xhr) { if (data.status == 0) { $('.auth-form_error').html(data.text + '<br>'); } else { $('.open-register').html(data.text); var delay = 1000; window.location.href = url = window.location.href + "?login=ok"; location.replace(url); setTimeout('window.location.reload(true);', delay); } } ).on('ajax:error', function (event, xhr, status, error) { } ); $('.recover_form') .on('ajax:beforeSend', function (event, xhr, settings) { clearErrors(); } ) .on('ajax:complete', function (event, xhr, status) { } ) .on('ajax:success', function (event, data, status, xhr) { console.log(data); if (data.status == 0) { $('.auth-form_error').html(data.text + '<br>'); } else { $('.recover-success').html('<div class="success" >' + data.text + '</div>'); } } ).on('ajax:error', function (event, xhr, status, error) { } ); $('.registration_form') .on('ajax:beforeSend', function (event, xhr, settings) { var emailError = $('#emailError'); var passwordError = $('#passwordError'); var passwordVerify = $('#passwordVerifyError'); var userTypeError = $('#userTypeError'); var emailExist = $('#emailExist'); emailError.html(''); passwordError.html(''); passwordVerify.html(''); userTypeError.html(''); emailExist.hide(); } ) .on('ajax:complete', function (event, xhr, status) { } ).on('ajax:success', function (event, data, status, xhr) { // insert the failure message inside the "#account_settings" element //console.log(data); if (data.status == 0) { //$('.reg-info').html('<div class="error">' + data.text + '</div>'); if (data.text.email) { var emailError = $('#emailError'); var emailExist = $('#emailExist'); console.log(data.text.email); if (data.text.email == 'Найдена совпадающая со значением запись') { console.log('alert'); emailExist.show(); } else { emailError.html('<i class="icon-error"></i><div class="error_note_wrapper">' + '<div class="error_note">' + '<span class="error_note_text">' + data.text.email + '</span></div></div>'); } } if (data.text.password) { var passwordError = $('#passwordError'); console.log(data.text.password); passwordError.html('<i class="icon-error"></i><div class="error_note_wrapper">' + '<div class="error_note">' + '<span class="error_note_text">' + data.text.password + '</span></div></div>'); } if (data.text.passwordVerify) { var passwordVerify = $('#passwordVerifyError'); console.log(data.text.passwordVerify); passwordVerify.html('<i class="icon-error"></i><div class="error_note_wrapper">' + '<div class="error_note">' + '<span class="error_note_text">' + data.text.passwordVerify + '</span></div></div>'); } if (data.text.captcha) { var captcha = $('#captchaError'); console.log(data.text.captcha); captcha.html('<i class="icon-error"></i><div class="error_note_wrapper">' + '<div class="error_note">' + '<span class="error_note_text">' + data.text.captcha + '</span></div></div>'); } if (data.text.userType) { var user_type = $('#userTypeError'); console.log(data.text.userType); user_type.html('<i class="icon-error"></i><div class="error_note_wrapper">' + '<div class="error_note">' + '<span class="error_note_text">' + data.text.userType + '</span></div></div>'); } } else { $('.reg-success').html(data.text); var delay = 2000; window.location.href = url = window.location.href + "?reg=ok"; location.replace(url); setTimeout('window.location.reload(true);', delay); } } ).on('ajax:error', function (event, xhr, status, error) { } ); </script> <div class="popup" id="premium-pop"> </div> <link rel="stylesheet" href="/videouroki/res/lightslider/lightslider.min.css"> <link rel="stylesheet" href="/videouroki/res/perfectScrollbar/perfect-scrollbar.css"> <link rel="stylesheet" href="/videouroki/assets/font-awesome/css/font-awesome.min.css"> <link rel="stylesheet" href="/assets/vendor/fancybox/jquery.fancybox.min.css"> <script src="/videouroki/res/perfectScrollbar/perfect-scrollbar.jquery.min.js"></script> <script src="/js/rails.js"></script> <script src="/videouroki/res/lightslider/lightslider.min.js"></script> <script src="/videouroki/res/jquery.validate.min.js"></script> <script src="/videouroki/res/autosize-master/autosize.min.js"></script> <script src="/videouroki/js/tabs.js"></script> <script src="/videouroki/js/select.js"></script> <script src="/videouroki/js/global.js?2109"></script> <script src="/videouroki/js/views.js"></script> <script src="/videouroki/plugin/notify/notify.min.js"></script> <script src="/videouroki/plugin/notify/notify-metro.js"></script> <script src="/videouroki/js/lazyload.min.js"></script> <script src="/assets/vendor/fancybox/jquery.fancybox.min.js"></script> <script type="text/javascript"> $(document).ready( function () { // new LazyLoad(); } ) </script> <!--[if gte IE 9]><script type="text/javascript" src="/videouroki/assets/ckeditor-mini/ckeditor.js"></script><![endif]--> <script type="text/javascript" src="/videouroki/js/readmore.js"></script></body> </html>