Skocz do zawartości

klasa do sprawdzania pozycji


Eldoka

Rekomendowane odpowiedzi

A dlaczego nie stosujesz się do zasad panujących na forum i piszesz kolejne posty pod swoim zamiast używać opcji edycji!

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...
dlaczego te skrypty pokazują 2 pozycje jak strona jest na top1?

Inny skrypt też tak miał.

Ponieważ na pierwszej pozycji jest strona główna, a na drugiej podstrona tego serwisu,

należy porównywać oba adresy i od tego uzależnić wzrost zmiennej $iPosition,

gdzieś to miałem już zrobione, ale gdzieś mi się to zapodział, jak znajdę do wkleję.

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Napisałem taka mała funkcję do rozbudowy, oczywiście w celach edukacyjnych. :)

<?
function pozycja($adres, $fraza, $podstron = 10, $na_strone = 100, $scisly = false, $zatrzymaj_po_znalezieniu = true)
 {
  if ($podstron * $na_strone > 1000)
	  return 0;
  if (preg_match('/^(?:https:\/\/)?(?:www\.)?(?<domena>(?:[\w-]*\.)+[a-zA-Z]{2,6})(?<uri>.*)$/', strtolower($adres), $urluri)) {
	  $domena = $urluri['domena'];
	  $uri = $urluri['uri'];
	  if ($scisly)
		  $domena += $uri;
	  for ($i = 0; $i < $podstron; $i++) {
		  sleep(rand(5, 15));
		  $content = file_get_contents('https://www.google.pl/search?hl=pl&lr=&as_qdr=all&num=' . $na_strone . '&q=' . urlencode($fraza) . '&start=' . $i * $na_strone . '&sa=N');
		  preg_match_all('/class=r><a href="([^"]*)" class=l/', $content, $linki, PREG_PATTERN_ORDER);
		  if (!isset($pozycje))
			  $pozycje = $linki[1];
		  else
			  $pozycje = array_merge($pozycje, $linki[1]);
		  if ($zatrzymaj_po_znalezieniu) {
			  $j = $i * $na_strone;
			  $ilosc = count($pozycje);
			  for(;$j < $ilosc;$j++)if (preg_match('/^https:\/\/(www\.)?' . $domena . '/i', $pozycje[$j]))
			  return($j + 1);
		  }
		  if(count($linki[1])!=$na_strone) break;
		  unset($content, $linki);
	  }
	  foreach ($pozycje as $x => $y) {
		  if (preg_match('/^https:\/\/(www\.)?' . $domena . '/i', $y))
			  $tablica[] = ($x + 1);
	  }
	  if (isset($tablica))
		  return $tablica;
	  else
		  return 0;
  } else
	  return 0;
 }
?>

$adres - adres strony lub podstrony z http, www lub bez

$fraza - szukana fraza zakodowana w utf-8 (polskie znaki!)

$podstron - liczba podstron wyników (domyślnie 10)*

$na_strone - liczba wyników na podstronę (domyślnie 100)*

$scisly - true - używany jest cały podany adres przy dopasowaniu, false - używana jest tylko nazwa subdomeny/domeny wyciagnięta z podanego adresu do dopasowania (domyślnie false)

$zatrzymaj_po_znalezieniu - true - funkcja zwraca pozycje (int) i przerywa działanie po znalezieniu najwyższej pozycji, false - zbiera wszystkie wyniki ($na_strone*$podstron) i zwraca tablice wyników zawierającą wszystkie napotkane pozycje dla danego adresu (domyślnie true)

W przypadku problemów (nie znalezienie pozycji, błąd) funkcja zwraca 0.

*) $podstron*$na_strone nie może być większe jak 1000

Przykłady użycia:

<?
set_time_limit(0);
echo pozycja("forum.optymalizacja.com/index.php?act=post","pozycjonowanie");
?>

Znajdzie najwyższa pozycję na "pozycjonowanie" dla tego forum.

<?
set_time_limit(0);
echo '<pre>';
var_dump(pozycja("https://www.forum.optymalizacja.com/","pozycjonowanie",10,100,false,false));
echo '<pre>';
?>

Znajdzie wszystkie pozycje dla forum na frazę "pozycjonowanie" w top1000.

e:p

nihil fit sine causa

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 rok później...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności