Generator listy tematycznych adresów.

Post Pic

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://sznurkuj.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("(
 
<h3 class="r"><a href="\">(.*)</a></h3>
 
 
)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=&gt;$adres){
  if($tylkoGlowne){
    if ($adresy[4][$i]=="" &amp;&amp; !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.

SEO BLOG Jurandinho na Facebook`u

Skomentowano 10 razy

12 stycznia 2010

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.

12 stycznia 2010

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

12 stycznia 2010

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 :)

12 stycznia 2010

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

12 stycznia 2010

tylko cos link do skryptu przestał smigac:(

12 stycznia 2010

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.

[...] 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 [...]

12 stycznia 2010

Ale skrypt chyba po ostatniej aktualizacji google przestał działać.

12 stycznia 2010

Na to wygląda. Trzeba będzie zrobić update.

12 stycznia 2010

miałem już kilka podobnych skryptów,
najgorsza strona takich rozwiązań to wykrzaczenia się co jakiś czas (zmiany w prezentacji wyników przez google) :/

Skomentuj artykuł

* Imię, Email, Twój komentarz to wymagane pola
Dołącz do komentarza informację o moich ostatnich artykułach

Polecane

O Autorze

Przemysław Jurkiewicz, 23 lata, z wykształcenia inżynier informatyki. Na co dzień specjalista ds. SEO pewnej międzynarodowej firmy. Zainteresowania to webmastering, programowanie aplikacji internetowych oraz optymalizacja i pozycjonowanie stron www oraz marketing internetowy. W wolnej chwili słucham dobrej muzyki oraz chodzę do kina. Na moim blogu staram się prezentować konkretną, praktyczną wiedzę - bez lania wody.
Jurand w sieci: