Tematy i rusyfikacja forum SMF, a także instalacja komponentu JFusion w Joomla. Lekcja trzecia
Zacznijmy od razu od głównego kodu skryptu:
#!/usr/bin/perl
# skrypt what-forum.pl
# (c) 2010 Aleksandr A Aleksiejew, http://website/
używaj ścisłego;
# skomentowane linie - dla ścisłości
# jeśli zadaniem jest zbieranie statystyk silnika, pozostaw je bez zmian
# jeśli robisz listę forów - odkomentuj
moje $dane ;
$dane .= $_ podczas (<>
)
;
# sprawdź ile było Powered by phpBB bez linku w stopce Ten i inne skrypty wymienione we wpisie można znaleźć w tym archiwum. Scenariusz które-forum.pl sprawdza kod strony html pod kątem obecności w nim 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. To pozwala nam pobrać stronę raz, na przykład za pomocą wget, a następnie przepuścić ją przez kilka parserów, jeśli mamy więcej niż jeden. Po drugie, w tym skrypcie obecność sygnatury jest 100% znakiem silnika. Ostatnim razem obecność sygnatury nadawała wagę tylko odpowiedniemu silnikowi i „wygrała” silnik o największej masie. Uznałem, że w tym przypadku takie podejście tylko niepotrzebnie skomplikuje kod. Aby przetestować skrypt, przeprowadziłem małe badania. Stworzył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 aktywacji programów i popularność różnych silników. Aby uzyskać listę forów, użyłem mojego parsera Google. Wyszukiwarka otrzymała zapytania takie jak strona:forum.*.ru itp. Pełny kod generatora zapytań można znaleźć w pliku gen-forumsearch-urls.pl. Oprócz strefy .ru używano również .su .ua .kz i .by. Ostatnio trudno było przeprowadzić takie badanie, ponieważ witryny WordPress i Joomla nie mają takich sygnatur w adresie URL. Katalogi takie jak cmsmagazine.ru/catalogue/ nie zapewniają wystarczającej wielkości próbki. Czym jest 600 witryn na Drupalu? Muszę przyznać, że wyniki eksperymentu mnie rozczarowały. Spośród 12 590 przebadanych miejsc tylko 7083 silniki zostały pomyślnie zidentyfikowane, czyli tylko w 56% przypadków. Może nie wziąłem pod uwagę jakiegoś silnika? Czy Bitrix stał na połowie forów? A może powinienem poświęcić więcej czasu na szukanie podpisów? Ogólnie potrzebne są tutaj dalsze badania. Wśród 56% pomyślnie zidentyfikowanych silników, zgodnie z oczekiwaniami, najbardziej popularne były IPB (31%), phpBB (26,6%) i vBulletin (26,5%). Tuż za nimi plasują się SMF (5,8%) i DLEForum (5,3%). Mój ulubiony punBB był dopiero na 6 miejscu (1,64%). Nie radzę mocno ufać tym liczbom (mówią, że co trzecie forum w Runecie działa na IPB), ale można oczywiście wyciągnąć pewne wnioski. Na przykład, jeśli zamierzasz założyć stronę na silniku forum i planujesz zmodyfikować forum, powiedzmy, pł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. Jeśli w silniku nie są spodziewane żadne znaczące zmiany, sensowne może być wybranie mniej popularnego silnika, takiego jak SMF lub punBB. W ten sposób zmniejszysz liczbę ataków hakerskich na swoje forum i ilość spamu, który jest na nie automatycznie wysyłany. Skrypty do wyszukiwania/definiowania forów mogą również znaleźć więcej niż jedno praktyczne zastosowanie. Pierwszą rzeczą, która przyszło mi osobiście do głowy, było posortowanie zidentyfikowanych forów według TCI i umieszczenie postów z linkami do jednej z ich witryn w pierwszej setce. Jednak setka linków dofollow forum nie wpłynęła w żaden sposób na TCI (minęły 2 aktualizacje), więc lepiej nie marnować tutaj czasu, chyba że interesują Cię przejścia. 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ć. Zorganizowany przez Botmaster Labs, nie planowany. Nie ma czasu, film jest potrzebny do konkursu, jako nowy trend, chociaż łatwiej wszystko wyjaśnić dobrymi zrzutami ekranu (moje IMHO), a tak naprawdę nie chcę niczego kręcić. Pozostało bardzo mało dochodowych tematów, głupi spam już w ogóle nie rządzi, tutaj trzeba się zastanowić i nikt nie będzie strzelał do tematu, jeśli tylko przestarzały spróbuje włożyć go w piękne opakowanie i trochę pudrować. :) 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 tak, jak z naprawą auta na trzy: tanio, wysokiej jakości, szybko - w serwisie mogą jednocześnie spełnić tylko 2 warunki. usiądź i wybierz to, co jest ci bliższe. :) Podobnie jest z konkursem: mam czas, mogę zrobić film, ale nie ma tematu, lub mogę zrobić film, mam temat, ale nie mam czasu w ogóle, lub jest czas wolny i jest mały temat, ale wideo przeraża. Ale dobrze, jeśli spełnione są jednocześnie 2 warunki. Dobra, zostawmy teksty. Będę kontynuował dla siebie. Nie planowałem, więc wezmę udział w konkursie, nawet wybrałem, 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 mogą to zrobić tylko początkujący, którzy kupili oprogramowanie w 2011 roku i konkurs jest dla nich przeznaczony. Trochę się zdziwiłem, ale właściciel to dżentelmen. 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 w rzeczywistości nie można tego zrobić dla całego kołchozu. Obsługiwane przez php-Fusion W wersji 7.07 Chrumera program został przeszkolony z kilkoma nowymi silnikami: forumi.biz, forumb.biz, 1forum.biz, 7forum.biz itp. phpBB-fr.com, motyw Solarisa phpBB A proces uczenia się nowych rzeczy trwa nieprzerwanie. 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 znajdujemy nawis „2001-2006, Lewis Media” w stopce. Sprawdzamy tę prośbę, również w pełni nas satysfakcjonuje. Znajdujemy podobne zapytanie: "2001-2005, Lewis Media". Posuwając się dalej w stopkach, znajdujemy następujące żądanie: "SMFone design by A.M.A, przeniesiony do SMF 1.1". Sprawdź to - świetnie. Itp. Pół godziny pracy i masz cudowną bazę zapytań w silniku, a dla tych zapytań Google będzie banał znacznie rzadziej, niż gdybyś używał w nich operatorów. A jednocześnie Twoja baza danych będzie dużo 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 tam, gdzie było to możliwe zostaw link do tematu forum. Można się spierać, mówią, co w tym złego? Inni zostawili link, więc możemy. Ale! Linki może pozostawić nie tylko Hrumer, ale także inne programy. ponadto można je specjalnie zaostrzyć do pozostawiania komentarzy w określonym zasobie, tzw. wysoce wyspecjalizowane oprogramowanie, plus takie linki można pozostawić ręcznie. Znowu powtarzam, to nie ilość śmieci jest dla nas ważna, ale jakość, i tak zbierzemy bazę z odpowiednimi prośbami. Zaletą tej metody jest to, że praktycznie nie trzeba konfigurować filtr sitowy
伟哥 - viagra 吉他 - gitara 其他 - odpoczynek 保险公司 - ubezpieczenie Umieść te kody w pliku Words, aby je zastąpić: %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ę z ubezpieczeniami, to umieszczając link w swoim profilu na temat (!) Nawet chińskie forum znalezione na życzenie ” forum SMF” będzie bardzo dobrze.
drukuj "phpbb \n"
jeśli ($dane =~ /]+href="[^"]*http:\/\/(?:www\.)?phpbb\.com\/?"[^>]*>phpBB/i lub
# $data =~ /viewforum\.php\?[^""]*f=\d+/i lub
$data =~ /phpBB\-SEO/i lub
$dane =~ /)
;
drukuj „ipb \n"
jeśli ($dane =~ /]+href="[^"]*http:\/\/(?:www\.)?invision(?:board|power)\.com\/?[^"]*"[^>]*> [^<]*IP\.Board/i
lub
$dane =~ /]+href="[^"]*http:\/\/(?:www\.)?invisionboard\.com\/?"[^>]*>Invision Power Board/i lub
$dane =~ /
$dane =~ /index\.php\?[^""]*showforum=\d+/i)
;
drukuj „vbulletin \n"
jeśli ($dane =~ /Obsługiwane przez:?[^<]+vBulletin[^<]+(?:Version)?/i
lub
$dane =~ /)
;
drukuj „smf \n"
jeśli ($dane =~ /]+href="[^"]*http:\/\/(?:www\.)?simplemachines\.org\/?"[^>]*>Obsługiwane przez SMF/i lub
$dane =~ /index\.php\?[^""]*board=\d+\.0/i)
;
drukuj „punbb \n"
jeśli ($dane =~ /]+href="[^"]*http:\/\/(?:(?:www\.)?punbb\.org|punbb\.informer\.com)\/?"[^>]*> PunBB/i) ; #lub
# $data =~ /viewforum\.php\?[^""]*id=\d+/i);
drukuj „fluxbb \n"
# if($data =~ /viewtopic\.php\?id=\d+/i or
jeśli ( $dane =~ /]+href="http:\/\/(?:www\.)fluxbb\.org\/?"[^>]*>FluxBB/i)
;
drukuj "exbb \n"
jeśli ($dane =~ /]+href="[^"]*http:\/\/(?:www\.)?exbb\.org\/?"[^>]*>ExBB/i) ; # lub
# $data =~ /forum\.php\?[^""]*forum=\d+/i);
drukuj „yabb \n"
jeśli ($dane =~ /]+href="[^"]*http:\/\/(?:www\.)?yabbforum\.com\/?"[^>]*>YaBB/i lub
$data =~ /YaBB\.pl\?[^""]*num=\d+/i ) ;
drukuj "dleforum" \n"
jeśli ($dane =~ /\(Obsługiwane przez forum DLE\)<\/title>/i lub
$dane =~ /]+href="[^"]+(?:http:\/\/(?:www\.)?dle\-files\.ru|act=copyright)[^"]*">Forum DLE<\/a>/i)
;
drukuj „ikonę” \n"
jeśli ($dane =~ /]+href="[^"]*http:\/\/(?:www\.)?ikonboard\.com\/?[^"]*"[^>]*>Ikonboard/i lub
$dane =~ /\n"
jeśli ($dane =~ /\n"
# if($data =~ /forum\.php\?fid=\d+/i or
# $data =~ /topic\.php\?fid=\d+/i lub
jeśli ($dane =~ /]+href="http:\/\/(?:www\.)?flashbb\.net\/?"[^>]*>FlashBB/i)
;
drukuj „stokesit \n"
# if($data =~ /forum\.php\?f=\d+/i lub
jeśli ($dane =~ /]+href="http:\/\/(?:www\.)?stokesit\.com\.au\/?"[^>]*>[^\/]*Stokes IT/i)
;
drukuj „podium \n"
# if($data =~ /topic\.php\?t=\d+/i lub
jeśli ($dane =~ /]+href=[""]?http:\/\/(?:www\.)?sopebox\.com\/?[""]?[^>]*>Podium/i)
;
drukuj "usebb \n"
# if($data =~ /forum\.php\?id=\d+/i lub
jeśli ($dane =~ /]+href="http:\/\/(?:www\.)?usebb\.net\/?"[^>]*>UseBB/i)
;
drukuj "wrforum \n"
# if($data =~ /index\.php\?fid=\d+/i lub
jeśli ($dane =~ /]+href="http:\/\/(?:www\.)?wr\-script\.ru\/?"[^>]*>WR\-Forum/i)
;
drukuj "jetanotherforumnet" \n"
if ($data =~ /Yet Another Forum\.net/i lub
$dane =~ /default\.aspx\?g=posty&t=\d+/i)
;
strona: rozmowa.*.ru
strona:tablica.*.ru
strona:smf.*.ru
strona:phpbb.*.ru
....
Długie wprowadzenie się skończyło, 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ć iluzję, że zaczynając spamować arkusze, możesz zarabiać 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 „wziąć więcej – wrzucić więcej” minął. Ilość ustępuje jakości. Więc bazę zbierzemy dla siebie, nie ucz się jak to zrobić - zostaniesz w tyle za pociągiem. Oczywiście Khrefer 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 zrozumiałe i logiczne. Ale Google, jako kochanka miedzianej góry, nie rozdaje wszystkim swojego bogactwa. Potrzebuje podejścia. Od razu powiem, że nie liczcie na to, że według znaków, które znajdziecie w społeczeństwie, uda wam się coś zebrać. Dlatego są dostępne publicznie, ponieważ są bezwartościowe. Nie będę dalej rozwijał tematu. Lepiej powiedzieć, jak poprawnie go złożyć, aby zobaczyć wynik, resztę sam sfinalizujesz, najważniejsze jest zrozumienie zasady. Należy zbierać zgodnie z poprawnym według znaków konkretnych silników, których potrzebujemy, a nie ogólnie znaków forów. To jest główny błąd początkujących - nie skupiać się na konkretnej rzeczy, ale starać się ogarnąć wszystko jako całość. A jednak, jeśli chcesz parsować mniej lub bardziej normalną bazę, odmów używania operatorów w zapytaniach. Brak „inurl:”, „site:”, „title” itp. Google natychmiast zablokuje wyszukiwarkom takim jak Ty. Dlatego dokładnie badamy silniki, z którymi obecnie pracuje Chrumer:
Ogólnie rzecz biorąc, musimy przygotować poprawne zapytania do parsowania przez Khrefer. Weźmy jako przykład forum dizhok. Fora SMF. I zaczniemy rozkładać go na części do przeanalizowania. Pomoże nam w tym nasz ukochany Google. Wprowadzanie zapytania Google Fora SMF- Dużo bzdur w numerze, przewiń do jakiejś 13. strony i wybierz dowolny link. Natknąłem się na ten: http://www.volcanohost.com/forum/index.php?topic=11.0 . Otwórzmy to i zbadajmy. 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. Przeszukujemy linki, dodajemy kilka dodatkowych opcji do tego słowa kluczowego, na przykład "Powered by SMF 1.1.14" topola lub Obsługiwane przez SMF 1.1.14 viagra. Jesteśmy przekonani, że prośba jest szykowna, w wydawaniu tylko forów i prawie żadnych śmieci dla Ciebie.
Poza tym nie interesuje nas ilość, ale jakość, jak wspomniałem powyżej. Zacząć robić. Z tego samego forum bierzemy ze stopki kolejną frazę: , zacytuj go i przekaż Google. W odpowiedzi zdradza, że zna ponad 13 milionów wyników. Ponownie przeglądamy dane wyjściowe, dodajemy dodatkowe słowa i sprawdzamy z nimi wynik. Dbamy o to, aby żądanie było doskonałe i prawie nie było śmieci. Ogólnie rzecz biorąc, są już 2 prośby o żelazo. Proponuję zostawić pierwsze forum w spokoju i kontynuować zbieranie próśb z innych forów. Na szczęście Google jest otwarte na życzenie 2006-2008 Simple Machines LLC. Z wydania 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 stopkach pobieramy od nich następujące prośby: "Powered by SMF 1.1.7" i "Powered by SMF 1.1.10" (zawsze radzę kierować prośby o Khrefer w cudzysłowie, ponieważ najpierw potrzebujemy jakości Wszystko). Myślę, że jest jasne, co robimy, w końcu będziemy mieli pewną bazę zapytań do przeszukiwania forów w silniku SMF (została wybrana jako przykład, z resztą silników jest podobnie).
Będzie to wyglądać mniej więcej tak:
Myślę, że bardzo ważne jest nauczenie się prawidłowego korzystania z Chrefera na początkowym etapie, ponieważ nauczywszy się tego, zawsze można znaleźć zastosowanie dla Chrumera, bez względu na to, jak zmieni się sytuacja. Zabezpieczenia stają się coraz bardziej skomplikowane, a jeśli ochrona została wzmocniona na niektórych typach silników i Khrumer nie radzi sobie w tej chwili z tym, to nie ma sensu marnować zasobów na zbieranie tych linków, a następnie na pracę nad nimi z Khrumerem, to lepiej skupić się na tym, co daje wynik. Jednocześnie, jeśli zespół Botmaster Labs nauczył Chrumera czegoś nowego, możesz szybko przeprowadzić sekcję nowego pacjenta i przygotować bazę Chrumera, gdy pacjent jest jeszcze ciepły. 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 Khrumera. I tu właśnie wszystko się porusza, czy nam się to podoba, czy nie, ale proces wybielania lub siwienia trwa. Czarne prześcieradła na wszystko, co możesz przenieść w przeszłość.
Wszystkie inne, już techniczne aspekty pracy z Hreferem można obejrzeć w pomocy i nie ma sensu się nad nimi rozwodzić, wszystkie cele-punkty-sekundy ustalane są empirycznie dla każdego auta 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 je przetestować, nie było bana, Khrefer szybko zbierał zasoby, wszystkie prośby o parsowanie były podobne do tych z Google, ale było morze zasobów chińskich i z wysokim PR, a poza tym europejski nie postawił stopy w wielu miejscach. Lepiej jest analizować z chińskimi prośbami. Pomoże w tym Tłumacz Google, wpisz listę słów kluczowych w języku rosyjskim i przetłumacz ją na język chiński. Prawda w słowa„Słowa Chrefera nie mogą być połączone po chińsku, muszą zostać przekodowane.
Zamiast chińskiego:
Podsumowując, chciałbym powiedzieć, że nigdy nie rozumiałem ludzi, którzy narzekali, że Khrefers są złe lub nie parsują, zawsze chciałem to powiedzieć, po prostu nie wiesz, jak je ugotować. Żaden parser nie jest lepszy niż referrer, po prostu musi być poprawny. Hrefer to samochód: dobry, solidny, wykonany po niemiecku, ale człowiek nim steruje i wszystko zależy od tego, jak rozsądnie się nim prowadzi, nie da się zmusić auta do jazdy w prawo i lewo jednocześnie.
Osobnym tematem jest czyszczenie baz, ja kiedyś 3 lata temu na poprzednim konkursie. Wszystko jest 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, wiele zbędnych zostało odfiltrowanych. Teraz można to zrobić niemal automatycznie podczas pracy Chrumera, chociaż ten proces nie jest kompletnym odpowiednikiem sprawdzania "200 OK". Ogólnie rzecz biorąc, do rzeczy: nie tak dawno w Khrumerze pojawiła się wspaniała okazja - okraść informacje z zasobów w czasie trwania projektu. To wygląda tak. Jedziesz w szablonie, który będzie przetwarzany w trakcie pracy, a informacje zebrane zgodnie z szablonem zostaną wpisane do pliku xgrabbed.txt w folderze Logs. Możesz użyć tej funkcji do wszystkiego, lot fantazji jest ogromny. Korzystam z tej funkcji raz w tygodniu, aby usunąć linki z "wygasłej" 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. goudyadya, ale nie ma tam forum. Aby więc wyrzucić ten żużel z bazy, będziemy rabować. :) Otwieramy kod źródłowy strony i widzimy tam ten wpis:
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: