/ / Liczba trafień podczas indeksowania witryny…? - python, strona internetowa, robot sieciowy, urllib

Liczba trafień podczas indeksowania witryny ...? - python, strona internetowa, robota sieciowego, urllib

Tworzę prostą aplikację, w której muszę śledzić linki ze strony itd., Tworząc w ten sposób bardzo podstawowy prototyp robota sieciowego.

Kiedy to testowałem, natknąłem się na robota.txt, który ma limit trafień dla wszystkich robotów zewnętrznych próbujących zaindeksować ich witrynę. Na przykład, jeśli robot.txt strony internetowej ma limit trafień nie większy niż 1 hit na sekundę (jak wikipedia.org) z danego adresu IP, a jeśli indeksuję kilka stron Wikipedii w tempie 1 strony na sekundę, a następnie jak oszacować, ile wyświetli się podczas indeksowania?

Pytanie: jeśli pobieram jedną całą stronę za pomocą urllib pytona, to ile trafień będzie ona odpowiadać?

Oto mój przykładowy kod:

import urllib.request
opener = urllib.request.FancyURLopener({})
open_url = opener.open(a)
page = open_url.read()
print page

Odpowiedzi:

1 dla odpowiedzi № 1

Jeśli pobierzesz całą stronę z witryny za pomocą urllib, będzie stanowić jedno (1) trafienie.

Zapisz stronę w zmiennej i od tej pory pracuj z tą zmienną.

Dodatkowo radzę ci użyć requests zamiast urllib. O wiele łatwiejsze / lepsze / mocniejsze.

Link do dokumentacja wniosków.


1 dla odpowiedzi nr 2

Jedną z rzeczy, które możesz zrobić, jest wprowadzenie odstępu czasowego między dwoma żądaniami, rozwiąże to problem, a także uniemożliwi blokowanie.