यह शेल कमांड के साथ 403 त्रुटि पुन: प्राप्त करने के लिए robots.txt सफल होता हैHTTP मशीनीकरण
$ curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0 (compatible;)" http://fifa-infinity.com/robots.txt
और robots.txt प्रिंट करता है। उपयोगकर्ता-एजेंट विकल्प को सर्वर से 403 त्रुटि में छोड़ना परिणाम। Robots.txt फ़ाइल का निरीक्षण करने से पता चलता है कि क्रॉलिंग के लिए http://www.fifa-infinity.com/board के तहत सामग्री की अनुमति है। हालांकि, निम्नलिखित में विफल रहता है (अजगर कोड):
import logging
import mechanize
from mechanize import Browser
ua = 'Mozilla/5.0 (X11; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0 (compatible;)'
br = Browser()
br.addheaders = [('User-Agent', ua)]
br.set_debug_http(True)
br.set_debug_responses(True)
logging.getLogger('mechanize').setLevel(logging.DEBUG)
br.open('http://www.fifa-infinity.com/robots.txt')
और मेरे कंसोल पर उत्पादन होता है:
No handlers could be found for logger "mechanize.cookies"
send: 'GET /robots.txt HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: www.fifa-infinity.com\r\nConnection: close\r\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0 (compatible;)\r\n\r\n'
reply: 'HTTP/1.1 403 Bad Behavior\r\n'
header: Date: Wed, 13 Feb 2013 15:37:16 GMT
header: Server: Apache
header: X-Powered-By: PHP/5.2.17
header: Vary: User-Agent,Accept-Encoding
header: Connection: close
header: Transfer-Encoding: chunked
header: Content-Type: text/html
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/moshev/Projects/forumscrawler/lib/python2.7/site-packages/mechanize/_mechanize.py", line 203, in open
return self._mech_open(url, data, timeout=timeout)
File "/home/moshev/Projects/forumscrawler/lib/python2.7/site-packages/mechanize/_mechanize.py", line 255, in _mech_open
raise response
mechanize._response.httperror_seek_wrapper: HTTP Error 403: Bad Behavior
अजीब, में उपयोगकर्ता-एजेंट परिणाम की स्थापना के बिना कर्ल का उपयोग कर "403: निषिद्ध" बल्कि "403: खराब व्यवहार" से।
क्या मैं किसी भी तरह से कुछ गलत कर रहा हूं, या यह मशीनी/urllib2 में एक बग है? मुझे नहीं लगता कि कैसे आसानी से robots.txt हो रहा है "बुरा व्यवहार" हो सकता है?
और शीर्ष लेख का एक और उदाहरण बुरा चला सूँघने। दूसरी तरफ सर्वर यूए एजेंट को और अधिक देख रहा है, जांचें कि हेडर 'कर्ल' क्या भेज रहा है, उन्हें 'मशीनीज' का उपयोग, समायोजन, राइंस, दोहराने के लिए तुलना करें। यह एक पायथन समस्या नहीं है * नहीं। –
यह समस्या [urllib2.HTTPError: HTTP त्रुटि 403: निषिद्ध] के समान दिखती है (https://stackoverflow.com/questions/13303449/urllib2-httperror-http-error-403-forbidden/46213623#46213623) – djinn