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
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 =~ /

/i lub
$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 =~ /forums\.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 or
jeśli ($dane =~ /]+href=[""]?http:\/\/(?:www\.)?sopebox\.com\/?[""]?[^>]*>Podium/i) ;
drukuj "usebb \n"
# if($data =~ /forum\.php\?id=\d+/i or
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 or
$dane =~ /default\.aspx\?g=posty&t=\d+/i) ;

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. Sporządziłem listę kilku tysięcy forów i przepuścił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 wyślij prośby jak

strona:forum.*.ru
strona: rozmowa.*.ru
strona:tablica.*.ru
strona:smf.*.ru
strona:phpbb.*.ru
....

i tak dalej. 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 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 się na nim dobrze zna.

Jeśli nie przewiduje się znaczących zmian w silniku, to może mieć sens wybór mniej popularnego silnika, takiego jak SMF lub punBB. To zmniejszy liczbę ataki hakerów do Twojego forum i ilości spamu, który jest na nim automatycznie wysyłany.

Skrypty do wyszukiwania / definiowania forów mogą również znaleźć więcej niż jedno praktyczne użycie. Pierwszą rzeczą, która przyszło mi osobiście do głowy, było posortowanie zidentyfikowanych forów według TIC 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ć.

Witam drodzy czytelnicy serwisu blogowego. Kontynuujemy więc temat konfiguracji silnika forum o nazwie SMF, rozpoczęty w poście na ten temat. Nie zrobiliśmy jeszcze forum rosyjskiego, jeśli chodzi o tłumaczenie z interfejsu angielskiego. Na ten moment nie wygląda zbyt reprezentacyjnie, ale po rusyfikacji (jeśli jeszcze tego nie zrobiono) i stworzeniu odpowiednich sekcji jego wygląd znacznie się poprawi.

Dzisiaj rozważymy motywy i zrobimy je rosyjskim, a także zainstalujemy komponent JFusion, który może współpracować z obydwoma silnikami (zarówno Jumla, jak i SMF), co pozwoli nam mieć wspólną bazę użytkowników dla dwóch i tylko jednej formy ich rejestracji i zaloguj się.

Motywy i instalacja pakietu języka rosyjskiego

silnik Proste maszyny Forum wspiera możliwość zmiany tematów, które mogą być zmieniane zarówno dla całego forum jako całości, jak iw szczególności dla poszczególnych jego sekcji. Osobiście użyłem domyślnego motywu, ale wprowadziłem w nim wiele ręcznych zmian. W szczególności zmieniłem tło, kolorystykę niektórych elementów, dodałem zegar flash, radio i wiele więcej, o czym opowiem w kolejnych wpisach w tym dziale.

Dlaczego podczas tworzenia forum nie użyłem żadnego z dodatkowych motywów? Cóż, chyba chodzi o moje lenistwo. Nie, nie byłem zbyt leniwy, aby szukać i pobierać nowe motywy, ponieważ jest wiele miejsc, w których można to zrobić. Moje lenistwo leży gdzie indziej.

Faktem jest, że cała różnorodność modów do tego silnika, zaprojektowana w celu rozszerzenia jego możliwości, koncentruje się konkretnie na domyślnym motywie. Wyjaśniam. Jeśli masz domyślny motyw, to dodanie tego lub innego modu do SMF zajmuje kilka sekund i z reguły nie wymaga ręcznej edycji kodu.

W przypadku instalacji moda na innym motywie projektowym niż domyślny, konieczne będzie, jak mówią, przetworzenie wszystkich surowych szczegółów za pomocą pliku. Innymi słowy, będziesz musiał przy użyciu FileZilla(pobierz i skonfiguruj, możesz uzyskać dostęp do strony przez FTP i otworzyć do edycji pliki silnika forum, w którym ten mod wprowadza zmiany.

Następnie poszukaj Właściwe miejsce w kodzie i wykonaj niezbędne czynności: zastąpienie kodu, usunięcie lub dodanie fragmentu kodu przed lub za potrzebnym fragmentem. Biorąc pod uwagę, że może być około tuzina plików, w których trzeba będzie dokonać zmian, można sobie wyobrazić, jak kłopotliwe będzie to zrobić. W takim przypadku musisz być bardzo ostrożny i nie popełniać błędów, ponieważ w przeciwnym razie forum może w ogóle się nie otworzyć.

Jeśli wszystkie wymienione powyżej problemy związane z używaniem niestandardowego motywu Cię nie przerażają, możesz je pobrać stąd. Tematy są tam posortowane w sekcje (minimalizm, zbliżony do klasycznego, nowoczesnego itp.) i dla każdego z nich można zobaczyć jego zrzut ekranu na Pełny ekran. Jak zainstalować te same motywy, powiem trochę później.

Jeśli nie zrusyfikowałeś forum na etapie przesyłania plików silnika na hosting, jak opisano w pierwszej części tego artykułu (patrz link na samym początku artykułu), możesz to zrobić teraz. Pakiet języka rosyjskiego pobrany wcześniej z tej strony z wymaganym, należy rozpakować, a następnie skopiować folder Motywy do Folder główny gdzie istnieje już katalog o tej samej nazwie.

Po zakończeniu kopiowania musisz wejść na forum używając loginu i hasła administratora. Wybierz "Administrator" z górnego menu, a następnie kliknij "Ustawienia serwera" z lewej kolumny.

W oknie, które zostanie otwarte, znajdź element „Domyślny język forum” i wybierz język rosyjski z listy rozwijanej, a następnie kliknij przycisk „Zapisz” u dołu strony.

To wszystko, teraz twoja konferencja jest całkowicie po rosyjsku.

Rozwiązywanie problemów podczas instalowania modów, które nie obsługują języka rosyjskiego

Należy pamiętać, że w przyszłości podczas dodawania modów do SMF, które nie mają rosyjskiego tłumaczenia, czasami mogą wystąpić problemy z wyświetlaniem ustawień modów w panelu administracyjnym. Właściwie te same ustawienia w panelu administracyjnym po prostu nie będą widoczne, ponieważ. nie będzie dla nich plików rusyfikacji. Dlatego będziesz mieć dwie możliwości rozwiązania tego problemu.

Pierwszym sposobem jest przejście na angielski na całym forum. Jak to zrobić, możesz zobaczyć kilka akapitów powyżej. W związku z tym po wykonaniu niezbędnych czynności z tymi ustawieniami będziesz musiał ponownie wrócić do języka rosyjskiego.

Druga metoda jest bardziej skomplikowana, ale pozwoli nam zobaczyć ustawienia zainstalowanych modów w panelu administratora zawsze, a nie tylko po aktywacji języka angielskiego. Rozważam ten punkt tak szczegółowo, ponieważ pytanie, czy ktoś zainstalował mod i nie może znaleźć jego ustawień w panelu administracyjnym swojej tablicy, jest bardzo częste.

Tak więc drugim sposobem jest dodanie linii tłumaczeń do plików rusyfikacji dla nowo dodanych modów. Jak ustalić, które pliki rusyfikacji należy zmienić i gdzie je zdobyć, powiem później. W międzyczasie możesz tymczasowo skorzystać z pierwszej metody.

Instalacja JFusion w celu zintegrowania strony i forum

Najpierw musisz pobrać JFusion i jego rusyfikację. Po wejściu do panelu administracyjnego Joomla wykonujemy standardowe czynności: wybierz z górne menu elementy panelu administracyjnego "Rozszerzenia" - "Zainstaluj / Usuń" - ​​"Prześlij plik pakietu" - przycisk "Przeglądaj" - znajdujemy na naszym komputerze plik z komponentem jfusion_package.zip - klikamy przycisk "Prześlij plik i zainstaluj >".

Następnie pojawi się okno z informacją, że komponent został pomyślnie zainstalowany. Jeśli pojawią się problemy, możesz zapoznać się z opcjami rozwiązania niektórych z nich pod linkiem powyżej.

Teraz przyszła kolej na rusyfikację, która jest dodawana w taki sam sposób, jak sam komponent. Tych. powtórz sekwencję czynności: „Rozszerzenia” – „Zainstaluj/Usuń” – „Prześlij plik pakietu” – przycisk „Przeglądaj” – znajdź plik JFusion Russification na swoim komputerze – kliknij przycisk „Prześlij plik i zainstaluj”. Teraz możemy przejść do ustawień wzdłuż ścieżki "Komponenty" - "JFusion" i upewnić się, że rusyfikacja została pomyślnie dodana i działa.

Powodzenia! Do zobaczenia wkrótce na stronie bloga

Możesz być zainteresowany

Konfiguracja JFusion dla Fusion Forum SMF i Joomla
Moduły JFusion do wyświetlania wiadomości z forum na stronie, a także tworzenia przycisku w SMF do powrotu do Joomla
Tworzenie elementu menu w Joomla, aby wejść na forum i przeniesienie rejestracji użytkownika z SMF na stronę
Instalacja forum SMF - Integracja forum Joomla 1.5 i Simple Machines przy użyciu komponentu JFusion
Rozszerzenia dla Joomla - co to jest i skąd pobierać komponenty, moduły i wtyczki dla Joomla, jak je instalować i usuwać
Komponent K2 do tworzenia blogów, katalogów i portali na Joomla - funkcje, instalacja i rusyfikacja Galeria zdjęć dla Joomla - Część 3 - Tworzenie galerii w Joomla 1.5 przy użyciu komponentu Phoca Gallery - dodawanie kategorii i przesyłanie zdjęć do galerii zdjęć
ARTIO JoomSEF - dostosowywanie linków CNC (SEF) i tytułu w Joomla, a także tworzenie strony błędu 404 przy użyciu tego rozszerzenia
Akeeba Backup (dawniej JoomlaPack) - tworzenie kopii zapasowej witryny na Joomla i przywracanie z utworzyć kopię zapasową w dwa kliknięcia

Zorganizowany przez Botmaster Labs, nie planowany. Nie ma czasu, film jest potrzebny na konkurs, 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 go włożyć 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. :) Tak samo jest z konkursem: mam czas, mogę zrobić film, ale nie ma tematu, albo mogę zrobić film, mam temat, ale nie mam czasu w ogóle, albo 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.
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 - rzucić więcej" minął. Ilość ustępuje jakości. Więc zbierzemy bazę 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 opinii publicznej, 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. Konieczne jest zbieranie zgodnie z poprawnym według znaków konkretnych silników, których potrzebujemy, a nie ogólnie znaków forów. to główny błąd początkujący - nie skupiaj się na konkretnym, ale staraj 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:”, „tytuł” ​​itp. Google natychmiast zablokuje wyszukiwarkom takim jak Ty. Dlatego dokładnie badamy silniki, z którymi ten moment Hrumer działa:

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.
Generalnie 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. Przeglądamy 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. Pójść dalej. Z tego samego forum bierzemy ze stopki kolejną frazę: , zacytuj go i przekaż Google. W odpowiedzi ujawnia, ż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 na razie 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 na silniku SMF (wybrano go jako przykład, z resztą silników jest podobnie).
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 znajdujemy nawis „2001-2006, Lewis Media” w stopce. Sprawdzimy 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ącą prośbę: "SMFone design by A.M.A, przeniesiony do SMF 1.1". Sprawdź to - świetnie. I tak dalej. 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 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 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. Ponownie, powtarzam, to nie ilość śmieci jest dla nas ważna, ale jakość, i tak zbierzemy bazę z odpowiednimi prośbami. Plus Ta metoda także tym, że praktycznie nie trzeba będzie konfigurować sito-filtr , można go po prostu wyłączyć, bo Google praktycznie nie da Wam śmieci.


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 zakazu, 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 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 chiński. Prawda w słowa„Słowa Chrefera nie mogą być ułożone w języku chińskim, muszą zostać przekodowane.
Zamiast chińskiego:

伟哥 - 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 witrynę ubezpieczeniową, publikując link w swoim profilu na temat tematyczny (!), nawet chińskie forum znalezione na życzenie ” forum SMF” będzie bardzo dobrze.
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ą wprowadzone 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 giną każdego dnia w celu oczyszczenia bazy z takich zasobów, a narzędzie „Autograbbing” nam w tym pomoże.
Mimo wszystko trzeba przyznać, że często wpisując np. http://www.laptopace.com/index.php widzimy, że ta domena to już np. goudya, 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:

laptopace.pl
Do chwytania konwertujemy to na
[...]

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 jest daleka od kompletnej, ale myślę, że pomoże to uniknąć wielokrotnego napędzania wielomilionowych baz śmieci. Nie jest trudno stworzyć szablon, otworzyć wygasły link i zrobić maskę szablonu. <br>Korzystając z tego samego automatycznego pobierania, możesz również przeglądać istniejące bazy danych i sortować je według zasobów, dzieląc je według silników.Sortowanie baz danych według silników pozwoli Ci jak najlepiej wykorzystać wszystkie funkcje i ustawienia Hrumera, w szczególności proces uczenia się. A poza tym za pomocą Autograbbing możesz usunąć śmieci z baz danych, jeśli wolisz je zbierać nie przez Hrefer, ale pobierając z różnych usług hostingu plików. Aby to zrobić, musisz albo zrobić maskę do wybierania forów, a następnie pobierać z bazy tylko to, co przechwyci maska, albo odwrotnie zrobić maskę dla nie-forów, a następnie usunąć to, co jest 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 (cierpiałem z tym, zrobiłem to pierwszy raz :)), chociaż uruchomiłem Hrefera z mojej domowej maszyny, prędkość netto nie jest zbyt dobra, tutaj mam kopie tylko do testów, więc nie winić mnie za szybkość pracy. :) <br><p><span class="BlWV-EuxoOk"></span></p> <h4>16 komentarzy:</h4> <p>Jacek komentuje...</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 dodać lub usunąć niektóre słowa, ale też nie automatycznie, ale przeglądam je wszystkie.</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 class="td-pb-span4 td-main-sidebar" role="complementary"> <div class="td-ss-main-sidebar"> </div> </div> </div> </div> </article> <script type="text/javascript"> try { var sbmt = document.getElementById('submit'), npt = document.createElement('input'), d = new Date(), __ksinit = function() { sbmt.parentNode.insertBefore(npt, sbmt); }; npt.value = d.getUTCDate() + '' + (d.getUTCMonth() + 1) + 'uniq9065'; npt.name = 'ksbn_code'; npt.type = 'hidden'; sbmt.onmousedown = __ksinit; sbmt.onkeypress = __ksinit; } catch (e) {} </script> <div class="td-sub-footer-container td-container-wrap "> <div class="td-container "> <div class="td-pb-row "> <div class="td-pb-span td-sub-footer-menu "></div> <div class="td-pb-span td-sub-footer-copy ">2022 bar812.ru. Tylko o kompleksie. Programy. Żelazo. Internet. Okna</div> </div> </div> </div> </div> <script data-cfasync="false" type="text/javascript"> if (window.addthis_product === undefined) { window.addthis_product = "wpwt"; } if (window.wp_product_version === undefined) { window.wp_product_version = "wpwt-3.1.2"; } if (window.wp_blog_version === undefined) { window.wp_blog_version = "4.9.1"; } if (window.addthis_share === undefined) { window.addthis_share = {}; } if (window.addthis_config === undefined) { window.addthis_config = { "data_track_clickback": true, "ui_language": "ru", "ui_atversion": "300" }; } if (window.addthis_plugin_info === undefined) { window.addthis_plugin_info = { "info_status": "enabled", "cms_name": "WordPress", "plugin_name": "Website Tools by AddThis", "plugin_version": "3.1.2", "plugin_mode": "AddThis", "anonymous_profile_id": "wp-f2d21fd70bfc0c32605b4e5e1e4ff912", "page_info": { "template": "posts", "post_type": "" }, "sharing_enabled_on_post_via_metabox": false }; } (function() { var first_load_interval_id = setInterval(function() { if (typeof window.addthis !== 'undefined') { window.clearInterval(first_load_interval_id); if (typeof window.addthis_layers !== 'undefined' && Object.getOwnPropertyNames(window.addthis_layers).length > 0) { window.addthis.layers(window.addthis_layers); } if (Array.isArray(window.addthis_layers_tools)) { for (i = 0; i < window.addthis_layers_tools.length; i++) { window.addthis.layers(window.addthis_layers_tools[i]); } } } }, 1000) }()); </script> <script type='text/javascript'> var tocplus = { "smooth_scroll": "1", "visibility_show": "\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c", "visibility_hide": "\u0441\u043a\u0440\u044b\u0442\u044c", "width": "Auto" }; </script> <script type='text/javascript' src='https://bar812.ru/wp-content/plugins/disqus-comment-system/media/js/disqus.js?ver=bbebb9a04042e1d7d3625bab0b5e9e4f'></script> <script> (function() { var html_jquery_obj = jQuery('html'); if (html_jquery_obj.length && (html_jquery_obj.is('.ie8') || html_jquery_obj.is('.ie9'))) { var path = '/wp-content/themes/Newspaper/style.css'; jQuery.get(path, function(data) { var str_split_separator = '#td_css_split_separator'; var arr_splits = data.split(str_split_separator); var arr_length = arr_splits.length; if (arr_length > 1) { var dir_path = '/wp-content/themes/Newspaper'; var splited_css = ''; for (var i = 0; i < arr_length; i++) { if (i > 0) { arr_splits[i] = str_split_separator + ' ' + arr_splits[i]; } //jQuery('head').append('<style>' + arr_splits[i] + '</style>'); var formated_str = arr_splits[i].replace(/\surl\(\'(?!data\:)/gi, function regex_function(str) { return ' url(\'' + dir_path + '/' + str.replace(/url\(\'/gi, '').replace(/^\s+|\s+$/gm, ''); }); splited_css += "<style>" + formated_str + "</style>"; } var td_theme_css = jQuery('link#td-theme-css'); if (td_theme_css.length) { td_theme_css.after(splited_css); } } }); } })(); </script> <div id="tdw-css-writer" style="display: none" class="tdw-drag-dialog tdc-window-sidebar"> <header> <a title="Redaktor" class="tdw-tab tdc-tab-active" href="#" data-tab-content="tdw-tab-editor">Edytuj za pomocą Live CSS</a> <div class="tdw-less-info" title="To będzie czerwone, gdy zostaną wykryte błędy w CSS i LESS"></div> </header> <div class="tdw-content"> <div class="tdw-tabs-content tdw-tab-editor tdc-tab-content-active"> <script> (function(jQuery, undefined) { jQuery(window).ready(function() { if ('undefined' !== typeof tdcAdminIFrameUI) { var $liveIframe = tdcAdminIFrameUI.getLiveIframe(); if ($liveIframe.length) { $liveIframe.load(function() { $liveIframe.contents().find('body').append('<textarea class="tdw-css-writer-editor" style="display: none"></textarea>'); }); } } }); })(jQuery); </script> <textarea class="tdw-css-writer-editor td_live_css_uid_1_5a5dc1e76f1d6"></textarea> <div id="td_live_css_uid_1_5a5dc1e76f1d6" class="td-code-editor"></div> <script> jQuery(window).load(function() { if ('undefined' !== typeof tdLiveCssInject) { tdLiveCssInject.init(); var editor_textarea = jQuery('.td_live_css_uid_1_5a5dc1e76f1d6'); var languageTools = ace.require("ace/ext/language_tools"); var tdcCompleter = { getCompletions: function(editor, session, pos, prefix, callback) { if (prefix.length === 0) { callback(null, []); return } if ('undefined' !== typeof tdcAdminIFrameUI) { var data = { error: undefined, getShortcode: '' }; tdcIFrameData.getShortcodeFromData(data); if (!_.isUndefined(data.error)) { tdcDebug.log(data.error); } if (!_.isUndefined(data.getShortcode)) { var regex = /el_class=\"([A-Za-z0-9_-]*\s*)+\"/g, results = data.getShortcode.match(regex); var elClasses = {}; for (var i = 0; i < results.length; i++) { var currentClasses = results[i] .replace('el_class="', '') .replace('"', '') .split(' '); for (var j = 0; j < currentClasses.length; j++) { if (_.isUndefined(elClasses[currentClasses[j]])) { elClasses[currentClasses[j]] = ''; } } } var arrElClasses = []; for (var prop in elClasses) { arrElClasses.push(prop); } callback(null, arrElClasses.map(function(item) { return { name: item, value: item, meta: 'in_page' } })); } } } }; languageTools.addCompleter(tdcCompleter); window.editor = ace.edit("td_live_css_uid_1_5a5dc1e76f1d6"); // 'change' handler is written as function because it's called by tdc_on_add_css_live_components (of wp_footer hook) // We did it to reattach the existing compiled css to the new content received from server. window.editorChangeHandler = function() { //tdwState.lessWasEdited = true; window.onbeforeunload = function() { if (tdwState.lessWasEdited) { return "You have attempted to leave this page. Are you sure?"; } return false; }; var editorValue = editor.getSession().getValue(); editor_textarea.val(editorValue); if ('undefined' !== typeof tdcAdminIFrameUI) { tdcAdminIFrameUI.getLiveIframe().contents().find('.tdw-css-writer-editor:first').val(editorValue); // Mark the content as modified // This is important for showing info when composer closes tdcMain.setContentModified(); } tdLiveCssInject.less(); }; editor.getSession().setValue(editor_textarea.val()); editor.getSession().on('change', editorChangeHandler); editor.setTheme("ace/theme/textmate"); editor.setShowPrintMargin(false); editor.getSession().setMode("ace/mode/less"); editor.setOptions({ enableBasicAutocompletion: true, enableSnippets: true, enableLiveAutocompletion: false }); } }); </script> </div> </div> <footer> <a href="#" class="tdw-save-css">Ratować</a> <div class="tdw-more-info-text">Napisz CSS LUB MNIEJ i naciśnij Zapisz. CTRL + SPACJA do autouzupełniania.</div> <div class="tdw-resize"></div> </footer> </div> <script type="text/javascript" defer src="https://bar812.ru/wp-content/cache/autoptimize/js/autoptimize_d85127d8732b44d62e81e0455b3d3cb7.js"></script> </body> </html>