Scraping ekranu: poruszanie się "błąd HTTP 403: żądanie wyłączone przez roboty.txt"

Czy istnieje sposób, aby obejść następujące?

httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt

Jest jedynym sposobem na skontaktowanie się z właścicielem strony (barnesandnoble.com) .. buduję witrynę, która przyniesie im większą sprzedaż, Nie wiem, dlaczego odmówią dostępu na pewnej głębokości.

Używam mechanize i BeautifulSoup na Python2. 6.

Mając nadzieję na obejście

Author: Diego, 2010-05-17

8 answers

Możesz spróbować kłamać na temat swojego agenta użytkownika (np. próbując uwierzyć, że jesteś człowiekiem, a nie robotem), jeśli chcesz mieć ewentualne problemy prawne Z Barnes & Noble. Dlaczego zamiast tego nie skontaktować się z ich działem rozwoju biznesu i przekonać ich, aby upoważnić Cię konkretnie? Bez wątpienia starają się uniknąć skrobania ich strony przez niektóre klasy robotów, takie jak porównywarki cen, a jeśli możesz ich przekonać, że nie jesteś jednym z Nich, podpisz umowę, itp., mogą być skłonni zrobić wyjątek dla Ciebie.

"techniczne" obejście, które łamie ich zasady zakodowane w robotach.txt jest podejściem wysokiego ryzyka prawnego, którego nigdy nie polecam. BTW, jak robi ich roboty.txt Czytaj?

 14
Author: Alex Martelli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-17 00:40:27

Musisz zignorować roboty.txt

br = mechanize.Browser()
br.set_handle_robots(False)
 186
Author: Yuda Prawira,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-03 13:02:38

Mechanizacja automatycznie podąża za robotami.txt, ale można go wyłączyć, zakładając, że masz pozwolenie lub przemyślałeś etykę ..

Ustaw flagę w przeglądarce:

browser.set_handle_equiv(False) 
To ignoruje roboty.txt.

Upewnij się również, że dławisz swoje żądania, aby nie obciążać ich zbytnio. (Zauważ, że to również zmniejsza prawdopodobieństwo, że wykryją cię i zablokują).

 5
Author: wisty,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-16 15:21:41

Kod do poprawnego żądania:

br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
resp = br.open(url)
print resp.info()  # headers
print resp.read()  # content
 3
Author: Vladislav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-20 22:16:41

Błąd, który otrzymujesz, nie jest związany z agentem użytkownika. mechanizacja domyślnie sprawdza roboty.dyrektywy txt są automatycznie używane podczas przechodzenia do witryny. Użyj .set_handle_robots (false) metoda mechanizacji.przeglądarka, aby wyłączyć to zachowanie.

 2
Author: Tom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-11 23:17:11

Ustaw nagłówek User-Agent tak, aby pasował do prawdziwego agenta użytkownika IE / FF.

Oto mój łańcuch IE8 useragent:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; AskTB5.6)
 1
Author: Stefan Kendall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-17 00:39:51

Bez dyskusji o etyce tego można zmodyfikować nagłówki wyglądać jak googlebot na przykład, czy googlebot jest zablokowany, jak również?

 0
Author: Steve Robillard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-17 00:40:48

Jak się wydaje, musisz zrobić mniej pracy, aby ominąć robots.txt, przynajmniej mówi Ten artykuł . Więc być może będziesz musiał usunąć jakiś kod, aby zignorować filtr.

 0
Author: BrunoLM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-17 00:41:33