post icon

Generator listy tematycznych adresów.

Większość pozycjonerów staje z czasem przed pewnym problemem. Skąd wziąć listę tematycznych adresów. Zdarza się to w różnych sytuacjach. Szukasz serwisu, z którym chcielibyśmy wymienić się linkami? Zakładasz branżowy katalog i nie chcesz, aby straszył na starcie pustkami? Przy 20-30 linkach jest to mały problem, jednak co w sytuacji kiedy potrzebne są setki, czy tysiące takich linków? I to najlepiej od ręki lub na wczoraj? Heh, to też nic trudnego. Zobacz!

O co w tym chodzi?

Na czym polega cała idea? Na niczym wyjątkowym. Za pomocą stosunkowo prostego, acz niezwykle skutecznego skryptu, łatwo wygenerujemy dopasowaną do naszych potrzeb listę tematycznych linków opartą o wyniki Google. Jednym kliknięciem!

Skrypt Generatora

DEMO:

http://jurandinho.pl/parser/?keywords=motoryzacja,samochody

przeskanuje wyniki dla słów kluczowych motoryzacja i samochody.

Analogicznie działają dowolne słowa kluczowe – ważne aby oddzielić je między sobą przecinkiem (bez spacji!).

Plik skryptu możesz pobrać stąd:
Generator Tematycznej Listy Adresów

Poniżej przedstawię poszczególne bloki kodu oraz szczegółowo i wyczerpująco je opiszę. Skrypt starałem się napisać jak najprostszym językiem, tak aby nawet czytelnicy stawiający pierwsze kroki w PHP nie mieli problemów ze zrozumieniem jego funkcjonowania.

Parametry skryptu
$keywords=array("seo","pozycjonowanie");
$tylkoGlowne=true;
$ile=500;
$skok=100;

Za pomocą tych czterech zmiennych ustawimy wszystkie parametry pracy skryptu.

  • $keywords – tablica przechowująca słowa kluczowe na podstawie, których wygenerowana zostanie lista adresów
  • $tylkoGlowne – może przyjmować wartości TRUE, lub FALSE. W trybie TRUE skrypt generuje wyłącznie linki prowadzące do stron głównych. Po co tak? W ten sposób otrzymamy listę tematycznych serwisów. W trybie FALSE natomiast lista zawierać będzie również adresy artykułów nawiązujących do pożądanych przez nas fraz, publikowanych nie rzadko na serwisach wielotematycznych.
  • $ile - wartość liczbowa, tyle stron skrypt załaduje w celu wygenerowania listy adresów. $ile=500 oznacza, że skrypt pobierze 500 pierwszych adresów widniejących w wynikach wyszukiwania google, i na ich podstawie wygeneruje dopasowaną listę. Liczba utworzonych w ten sposób adresów z reguły będzie nieco niższa. Uwarunkowane jest to m.in. od wykorzystania parametru $tylkoGlowna. Skrypt z puli pobranych adresów usuwa wtedy wpisy nieprowadzące do stron głównych oraz, wpisy powtarzające się.
  • $skok – wartość liczbowa, odpowiada ilości wyników wyświetlanych na pojedynczej stronie wyników wyszukiwania Google. Zawiera się zatem w przedziale od 10 do 100;
Funkcja pobierania adresów
function pobierzAdresy($keywords){
  global $tylkoGlowne,$ile, $skok;
  $wynik=array();
  • Nagłówek funkcji pobierzAdresy(), przyjmuje ona jeden argument – tablicę ze słowami kluczowymi.
  • Zadeklarowanie zmiennych globalnych $tylkoGlowne, $ile, $skok pozwala odwołać się do wcześniej zadeklarowanych parametrów skryptu.
  • $wynik=array() – na początku tablica z wynikowymi adresami jest pusta. Jest to istotna deklaracja, z uwag na późniejszy fragment kodu, w którym sprawdzamy, czy pobrany adres znajduje się już w tablicy wyników.
foreach($keywords as $keyword){
  $num=$skok;
  for($start=0-$skok;$num<=$ile;$num+=$skok){
    $start+=$skok;
    $url='http://google.pl/search?q='.urlencode($keyword).'&num='.$num.'&start='.$start;
  • Rozpoczęcie pętli foreach wykonywanej, dla każdego zadeklarowanego słowa kluczowego
  • num, start – argumenty generowanego zapytania do wyszukiwarki. Podczas danego przebiegu pętli przetwarzamy $num elementów, zaczynając od elementu na pozycji $start. Początkowo $start przyjmuje wartość ujemną (0-$skok), by zaraz na początku pierwszego przebiegu pętli zostać zwiększona, właśnie o wartość $skok. Dlaczego tak? Jest to taki mały, chytry zabieg, aby zaczynać od zera, i zachować ścisłość kodu, który ZAWSZE zwiększa $start o zadaną wartość. Jeśli nadal nie do końca rozumiesz o czym mówię, to przeanalizuj jak wyglądałby kod, gdyby zamiast ujemnej wartości, ustawiać na początku zero.
Parsowanie wyników
$serp=file_get_contents($url);
  preg_match_all("(

(.*)

)siU",$serp,$adresy);
  • Jeden z ważniejszych fragmentów kodu. Do zmiennej $serp przypisujemy wygenerowaną za pomocą zapytania $url listę wyników.
  • Za pomocą funkcji preg_match_all, oraz wyrażeń regularnych ‘wyciągamy’ z SERPów adresy stron i zapisujemy je w zmiennej $adresy. Nas będą interesowały dwie kolumny tej tablicy. $adresy[1] – pełne adresy, oraz $adresy[4] – w prostych słowach – tylko to, co w adresie znajduje się za domeną.
Tworzenie tablicy wyników
foreach ($adresy[1] as $i=>$adres){
  if($tylkoGlowne){
    if ($adresy[4][$i]=="" && !in_array($adres,$wynik)) $wynik[]=$adres;
    } else $wynik[]=$adres;
return $wynik;
  • Pobrane adresy zapisujemy w postaci tablicy wyników
  • Jeśli interesują nas tylko linki do stron głównych, to skrypt sprawdza czy w adresie znajduje się coś poza nazwą domeny if ($adresy[4][$i]==”") oraz czy dana domena nie widnieje została już wcześniej dodana do tablicy wyników if (!in_array($adres,$wynik)), jeśli wszystkie warunki są spełnione, przetwarzany adres dodawany jest do tablicy wyników $wynik[]=$adres;
Generowanie raportu z listą adresów 
function raport($dane,$nazwa_pliku="raport.txt")
  • Standardowa funkcja zapisu do pliku. $dane, to tablica, której wiersze zostaną zapisane w pliku $nazwa_pliku, który domyślnie przyjmuje nazwę „raport.txt”
$adresy=pobierzAdresy($keywords);
raport($adresy,$keywords[0].'.txt');
  • Wywołanie wyżej opisanych funkcji, z wcześniej zadeklarowanymi parametrami
  • Generowanemu plikowi tekstowemu, jako nazwę przypisujemy pierwsze przetwarzane przez skrypt słowo kluczowe

Instalacja

Ciężko w przypadku tak prymitywnego skryptu mówić o instalacji. Ogranicza się ona do wypakowania zawartości archiwum i nadania katalogowi gtla-0.1 CHMOD 777.

Plik skryptu możesz pobrać stąd:
Generator Tematycznej Listy Adresów

Zastosowanie

Jak zastosować skrypt w praktyce? Zależy od Twojej wyobraźni. Możesz postarać się go samodzielnie rozbudować i zbudować serwis ułatwiający wyszukiwanie stron do wymiany linkami. Możesz wykorzystać wygenerowane adresy to uzupełnienia swojego nowo powstałego katalogu o pierwsze wpisy… za mało konkretnie? No dobra.

W jednym z wcześniejszych artykułów wspominałem o dobrodziejstwach związanych z wykorzystaniem skryptu Scuttle do budowy zaplecza.

Mendax w swoim serwisie udostępnił bardzo ciekawe narzędzie, pozwalające automatycznie generować wpisy do twojego Scuttla. Jedyne czego potrzebuje do działania to… plik z adresami stron, które ma dodawać. Prawda, że piękna współpraca? Skrypt Mendaxa znajdziecie tutaj: Scuttle – dodatki

Co dalej?

Wyżej przedstawiony skrypt to tylko baza do stworzenia czegoś większego i naprawdę ciekawego. W kolejnych odsłonach pokaże jak dodać do naszego raportu takie elementy jak tytuł strony, krótki opis, Page Rank, ilość backlinków czy historię domeny. Z czasem dorobimy do tego skryptu możliwość śledzenia pozycji danej strony w wyszukiwarce i wszystko okrasimy interface`m. Myślę, że fajnymi dodatkami będą też funkcje eksportujące te dane to popularnych skryptów katalogów, bądź innych narzędzi do tworzenia zaplecza.

Nie chcesz przegapić tych artykułów? Zapisz się do bezpłatnego newslettera i bądź na bieżąco z nowościami na blogu. Ja nie rozsyłam spamu.

 

Masz jeszcze jakieś propozycje? Podziel się nimi w komentarzu.

12 komentarze

Zostaw komentarz
  1. Jurandinho
    12 stycznia 2010 w kategorii 21:42 #

    Od ciebie zależy jak to wykorzystasz. Narzędzie można wykorzystać – tak jak mówisz – do generowania zaplecza, ale równie dobrze możesz wykorzystać je do chociażby analizy konkurencji na zadane słowa kluczowe.

    Skrypt ten jest też pierwszym krokiem na drodze do budowy większego softu, który wraz ze wzrostem liczby funkcjonalności zyska większe pole zastosowania. Może teraz nie oczaruje wszystkich, ale warto śledzić jego rozwój.

    Dlaczego zatem kod zamieszczam w kawałkach?

    Aby początkujący użytkownicy mogli krok po kroku, na bieżąco analizować budowę poszczególnych funkcji. Stąd też prosta konstrukcja kodu, oraz bogate opisy i wyjaśnienia.

  2. grafika
    13 stycznia 2010 w kategorii 19:10 #

    bardzo fajne rozwiązanie :) za chwilę będę testował je :]

  3. Jurandinho
    13 stycznia 2010 w kategorii 19:29 #

    Zauważyłem, że czasami skrypt wyświetla u mnie błąd 503 Service Unavailable i generuje pusty plik .txt. Będziemy wymyślać zmiany :)

  4. pawel
    23 marca 2010 w kategorii 00:37 #

    tylko cos link do skryptu przestał smigac:(

  5. Jurandinho
    23 marca 2010 w kategorii 23:58 #

    Już śmiga. Przy okazji ogarnąłem wszystkie pliki wygenerowane przez was…

    Z tej okazji może mały konkurs? Kto odgadnie zajmują miejsca na dysku wszystkie wygenerowane przez was pliki tekstowe? Można pomylić się o 100mb. Zwycięzca otrzyma dwa tygodnie reklamy w boksie AdTaily za free.

  6. Matii
    11 grudnia 2010 w kategorii 23:37 #

    Szkoda, że demko już nie działa :/ Mógłbyś udostępnić gotowca takiego jak był w demku? Tak żeby wrzucić na serwer i działało.
    Pozdro i dzięki jak coś

  7. Robert
    10 czerwca 2011 w kategorii 22:34 #

    Skrypt wrzuciłem na serwer, ustawiłem CHMOD katalogu na 777. Skrypt generuje puste pliki tekstowe, nie wyświetla na ekranie żadnych wyników. Jest jakaś sztuczka żeby ten soft zaczął działać?

    Demo również nie działa.

  8. dziun
    20 listopada 2011 w kategorii 12:46 #

    „Skrypt wrzuciłem na serwer, ustawiłem CHMOD katalogu na 777. Skrypt generuje puste pliki tekstowe, nie wyświetla na ekranie żadnych wyników. Jest jakaś sztuczka żeby ten soft zaczął działać?
    Demo również nie działa.”

    Ten sam problem tutaj.

  9. Marian
    7 marca 2012 w kategorii 22:40 #

    Chyba, co chwila zmieniaja kod strony googla i skrypt przestaje Ci dzialac.. może dostosuj do aktualnej wersji…

  10. Jurandinho
    30 marca 2012 w kategorii 12:58 #

    Ostatnio potrzebowałem tego skryptu i go zaktualizowałem. Powinien działać.

Odniesienia

  1. Scuttle – dodatki - 13 stycznia 2010

    [...]Kolega Jurandinho opublikował ciekawy skrypt, dzięki któremu można automatycznie wygenerować “tematyczne” listy adresów. [...]

  2. Mini konkurs. 2 tygodnie reklamy AdTaily za free. | SEO Blog Jurandinho - 24 marca 2010

    [...] Ostatnio w ramach porządków archiwizowałem wszystkie wygenerowane przez was za pomocą dem0 Generatora Tematycznych Lików pliki tekstowe. Bardzo ciekawa lektura i ładna baza listy linków do wszelakich dalszych [...]