Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Crawler PHP
Forum PHP.pl > Forum > Przedszkole
vegeta
Mam oto sobie taki crawlerek:

  1.  
  2. function DawajAdresy($strona)
  3. {
  4. $original_file = file_get_contents($strona);
  5.  
  6. $stripped_file = strip_tags($original_file, "<a>");
  7. preg_match_all('#href="(http://[^/"]+)/?"#is', $stripped_file, $matches);
  8.  
  9. $unikat = array_unique($matches[1]); //Usuwa powtarzajace sie wartosci
  10. return $unikat;
  11. }
  12.  
  13. function ClearArray($arr) //Czysci tablice z pustych kluczy
  14. {
  15. foreach($arr as $val)
  16. {
  17. if(!empty($val))
  18. {
  19. $cleared_arr[] = $val;
  20. }
  21. }
  22. return $cleared_arr;
  23. }
  24.  
  25. $poprawne = 0;
  26. $i = 0;
  27.  
  28. $strona = "http://it-maniak.pl/";
  29. $unikat = DawajAdresy($strona);
  30. if (empty($unikat)) {
  31. echo 'Brak adresów na '.$strona.'<br />';
  32. } else {
  33. $tablica = ClearArray($unikat);
  34.  
  35. echo '<h1>Linki znalezione na '.$strona.'</h1>';
  36.  
  37. foreach ($tablica as $tab)
  38. {
  39. if (!preg_match('#\.blip\.pl|\.sympatia\.onet\.pl|\.codeplex\.com#is', $tab)) {
  40. (sprawdzanie czy URL istnieje w bazie, wyświetlanie, dodawanie do bazy)
  41. }
  42. }
  43.  
  44. foreach ($tablica as $tab)
  45. {
  46. //Druga rudka
  47.  
  48. $strona = $tab;
  49. $unikat = DawajAdresy($strona);
  50. if (!empty($unikat)) {
  51. $tablica2 = ClearArray($unikat);
  52.  
  53. foreach ($tablica2 as $tab2)
  54. {
  55. if (!preg_match('#\.blip\.pl|\.sympatia\.onet\.pl|\.codeplex\.com#is', $tab2)) {
  56. (sprawdzanie czy URL istnieje w bazie, wyświetlanie, dodawanie do bazy)
  57. }
  58. }
  59. }
  60. }
  61. }
  62. echo '<br />Poprawne strony: '.$poprawne.'/'.$i;


1. Jak w prosty sposób zrobić, aby w przypadku blokowania robotów w meta (nofollow, noindex, none itp) wyrzucało adres z tablicy?
2. Da się zrobić w prosty sposób, aby robot pobierał robots.txt i przetwarzał je jak normalny robot? Jak?
3. Czy cURL jest szybszy od file_get_contents? Jakie są argumenty za i przeciw cURL?

Ludzie
darko
1. Sprawdzasz z pobranej treści strony sekcję head i jeżeli znajdziesz informacje nofollow czy noindex to pomijasz taką stronę
2. ?
3. Podobno cUrl jest znacznie szybszy.
sn1p3r
czytasz plik robots.txt i postępujesz według opisu wink.gif


cURL jest "mocniej" customizowalny, możesz na przykład nie podążać za 302, dokładać własne nagłówki i tak dalej
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.