50 votes

Raclage d'écran : contourner l'erreur "HTTP Error 403 : request disallowed by robots.txt".

Y a-t-il un moyen de contourner ce qui suit ?

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

La seule façon de contourner ce problème est de contacter le propriétaire du site (barnesandnoble.com). Je construis un site qui leur apporterait plus de ventes, je ne sais pas pourquoi ils refuseraient l'accès à une certaine profondeur.

J'utilise mechanize et BeautifulSoup sur Python2.6.

en espérant une solution de rechange

0 votes

Il y a probablement des problèmes juridiques si vous envisagez de monétiser, mais si vous ne le faites pas, continuez comme vous voulez. Longue vie à Scroogle.

225voto

Gunslinger_ Points 2293

oh vous devez ignorer le robots.txt

br = mechanize.Browser()
br.set_handle_robots(False)

7 votes

C'est ce que je cherche.

1 votes

C'est exactement ce que je cherchais.

0 votes

Wow, ça marche encore ! Je me demande si c'est illégal de quelque manière que ce soit.

16voto

Alex Martelli Points 330805

Vous pouvez essayer de mentir sur votre agent utilisateur (par exemple, en essayant de faire croire que vous êtes un être humain et non un robot) si vous voulez avoir d'éventuels problèmes juridiques avec Barnes & Noble. Pourquoi ne pas plutôt prendre contact avec leur département de développement commercial et les convaincre de vous autoriser spécifiquement ? Ils essaient sans doute d'éviter que leur site ne soit raclé par certaines catégories de robots, comme les moteurs de comparaison de prix, et si vous pouvez les convaincre que vous n'en êtes pas un, que vous signez un contrat, etc.

Une solution de contournement "technique" qui ne fait qu'enfreindre leur politique telle qu'elle est encodée dans le fichier robots.txt est une approche à haut risque juridique que je ne recommanderais jamais. BTW, comment fait leur robots.txt lu ?

0 votes

Leur fichier robots.txt n'interdit que "/reviews/reviews.asp" - est-ce ce que vous récupérez ?

0 votes

Merci Alex, je suis d'accord... après avoir lu davantage sur robots.txt, c'est la meilleure approche. Merci... @fmark je gratte la partie vidéo... video.barnesandnoble.com/robots.txt

14 votes

robots.txt n'est pas juridiquement contraignant. ( nytimes.com/2005/07/13/technologie/ )

5voto

wisty Points 4280

Mechanize suit automatiquement le fichier robots.txt, mais il est possible de le désactiver en supposant que vous avez la permission, ou que vous avez réfléchi à l'éthique .

Définissez un drapeau dans votre navigateur :

browser.set_handle_equiv(False) 

Cela ignore les robots.txt.

Veillez également à limiter vos requêtes, afin de ne pas surcharger leur site. (Remarque : cela réduit également les risques de détection et d'interdiction).

0 votes

Hé Wisty, qu'est-ce que tu veux dire par "throttle your requests" ?

0 votes

Je veux dire, mettez un petit timeout après chaque requête (i.e. time.sleep(1)), et n'utilisez pas beaucoup de threads. J'utiliserais quelques threads (au cas où certains s'embourberaient), et quelques secondes de sommeil.

1 votes

cela ne fonctionne pas avec la version actuelle de mechanize

3voto

Tom Points 420

L'erreur que vous recevez n'est pas liée à l'agent utilisateur. Par défaut, mechanize vérifie automatiquement les directives robots.txt lorsque vous l'utilisez pour naviguer sur un site. Utilisez la méthode .set_handle_robots(false) de mechanize.browser pour désactiver ce comportement.

1voto

Stefan Kendall Points 28274

Définissez votre User-Agent pour correspondre à un véritable User-Agent IE/FF.

Voici mon useragent string IE8 :

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)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X