2014-08-29 1 views
0
import mechanize 
br = mechanize.Browser() 
url = 'http://nseindia.com' 
br.oprn(url) 

и ошибкаMechanize, BS4, URLLIB, urlib2 не может открыть nseindia.com

Traceback (most recent call last): 
    File "<input>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 203, in 
open 
    return self._mech_open(url, data, timeout=timeout) 
    File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 255, in 
_mech_open 
    raise response 
httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt 

я попробовать все думаю, как ....

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')] 

br.set_handle_equiv(False) 


br.set_handle_equiv(False) 
+0

ли ответ помог решить эту проблему? Если да, подумайте о принятии ответа, спасибо. – alecxe

ответ

1

Вам необходимо пройти Accept заголовок:

import mechanize 

br = mechanize.Browser() 

br.addheaders = [ 
    ('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36'), 
    ('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8') 
] 

url = 'http://nseindia.com' 
br.open(url) 

Тогда, чтобы доказать, что он работает, анализировать реакцию с BeautifulSoup и получить заголовок страницы:

soup = BeautifulSoup(br.response()) 
print soup.title.text 

распечаток:

NSE - National Stock Exchange of India Ltd. 

 Смежные вопросы

  • Нет связанных вопросов^_^