Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Crawler PHP
vegeta
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 9.11.2008

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
sn1p3r
post
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 9.03.2011

Ostrzeżenie: (0%)
-----


czytasz plik robots.txt i postępujesz według opisu (IMG:style_emoticons/default/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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 13:43