Latest posts on urllib2, ошибка запроса/ответа http topichttp://python.su/forum/topic/9746/2017-10-23T18:53:24+03:00Веб-технологии :: Web :: urllib2, ошибка запроса/ответа http
2017-10-23T18:53:24+03:00alexZaharov185252встретился с похожей проблемой.<br/>При использовании urllib.request.urlopen(url)<br/>выдает ошибки:<br/><br/>Traceback (most recent call last):<br/> File “<pyshell#2>”, line 1, in <module><br/> f = urllib.request.urlopen(url)<br/> File “E:\pithon\lib\urllib\request.py”, line 191, in urlopen<br/> return opener.open(url, data, timeout)<br/> File “E:\pithon\lib\urllib\request.py”, line 495, in open<br/> response = meth(req, response)<br/> File “E:\pithon\lib\urllib\request.py”, line 603, in http_response<br/> ‘http’, request, response, code, msg, hdrs)<br/> File “E:\pithon\lib\urllib\request.py”, line 533, in error<br/> return self._call_chain(*args)<br/> File “E:\pithon\lib\urllib\request.py”, line 467, in _call_chain<br/> result = func(*args)<br/> File “E:\pithon\lib\urllib\request.py”, line 611, in http_error_default<br/> raise HTTPError(req.full_url, code, msg, hdrs, fp)<br/>urllib.error.HTTPError: HTTP Error 403: Forbidden<br/><br/>вот код:<br/><br/>import urllib.request, urllib.parse, urllib.error<br/><br/>url = '<a href="http://www.py4e.com/code3/mbox.txt">http://www.py4e.com/code3/mbox.txt</a>'<br/>f = urllib.request.urlopen(url).read()<br/>print(f)
Веб-технологии :: Web :: urllib2, ошибка запроса/ответа http
2011-01-04T11:51:34+02:00Андрей Светлов62828.request - строку (что не всегда удобно)<br/>self.opener.open - addinfourl (читайте документацию)
Веб-технологии :: Web :: urllib2, ошибка запроса/ответа http
2011-01-04T11:30:04+02:00Lunar62827а еще спросить хотел, этот метод .request (self.opener.open) возвращает какой тип? строку?
Веб-технологии :: Web :: urllib2, ошибка запроса/ответа http
2011-01-03T20:18:28+02:00bat62819Спасибо огромное. Действительно, в заголовках дело.
Веб-технологии :: Web :: urllib2, ошибка запроса/ответа http
2011-01-03T10:34:04+02:00Андрей Светлов62793Ваш сайт хотел дополнительные заголовки. Какие точно - не знаю, скопировал что firefox шлет.<br/><div class="code"><pre>import urllib, urllib2, cookielib<br/><br/>class atape_http_client(object):<br/> def __init__(self, proxy=None, user_agent='Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3'):<br/> self.cookie_handler = urllib2.HTTPCookieProcessor(cookielib.CookieJar())<br/> self.redirect_handler = urllib2.HTTPRedirectHandler()<br/> self.http_handler = urllib2.HTTPHandler()<br/> self.https_handler = urllib2.HTTPSHandler()<br/><br/> self.opener = urllib2.build_opener(self.http_handler,<br/> self.https_handler,<br/> self.cookie_handler,<br/> self.redirect_handler)<br/><br/> if proxy:<br/> self.proxy_handler = urllib2.ProxyHandler(proxy)<br/> self.opener.add_handler(self.proxy_handler)<br/><br/> self.opener.addheaders = [('User-agent', user_agent),<br/> ('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'),<br/> ('Accept-Language', 'en-us,en,;q=0.5'),<br/> ('Accept-Encoding', 'gzip,deflate'),<br/> ('Accept-Charset', 'ISO-8859-1,utf-8;q=0.7,*,q=0.7')]<br/><br/> def request(self, url, params={}, timeout=60):<br/> if params:<br/> params = urllib.urlencode(params)<br/> html = self.opener.open(url, params, timeout)<br/> else:<br/> html = self.opener.open(url)<br/><br/> return html.read()<br/><br/><br/>bot = atape_http_client()<br/>params = {}<br/><br/>print bot.request("https://stat.byfly.by/cgi-bin/cgi.exe?function=is_newlog")</pre></div>
Веб-технологии :: Web :: urllib2, ошибка запроса/ответа http
2011-01-02T23:33:34+02:00bat62778<blockquote><em>Андрей Светлов</em><br/>Очевидно, вам нужно авторизироваться, указав логин и пароль.</blockquote>неа, эта страница грузится и так, логин и пароль там нужено в другой скрипт посылать, но суть в том, что не грузится просто страница с этого сервера. Если я посылаю логин и пароль по нужному адресу, то все равно та же ошибка:<br/>File “/usr/lib/python2.6/urllib2.py”, line 518, in http_error_default<br/> raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)<br/>urllib2.HTTPError: HTTP Error 403: Forbidden<br/><br/><br/><blockquote><em>Андрей Светлов</em><br/>Вместо этого в .request вызывайте self.opener.open(…)</blockquote>а можно поподробнее, я еще в питоне новичек, до таких вещей не дошел)
Веб-технологии :: Web :: urllib2, ошибка запроса/ответа http
2011-01-02T22:54:32+02:00Андрей Светлов62776Очевидно, вам нужно авторизироваться, указав логин и пароль.<br/><br/>P.S. не делайте urllib2.install_opener, не нужно.<br/>Вместо этого в .request вызывайте self.opener.open(…)
Веб-технологии :: Web :: urllib2, ошибка запроса/ответа http
2011-01-02T21:28:54+02:00bat62774Здравствуйте! Помогите пожалуйста подпилить код, который выкидывает содержимое страницы, для адреса <a href="https://stat.byfly.by/cgi-bin/cgi.exe?function=is_newlog">https://stat.byfly.by/cgi-bin/cgi.exe?function=is_newlog</a> , а то выкидывает HTTP Error 403: Forbidden<br/><div class="code"><pre>import urllib, urllib2, cookielib<br/><br/>class atape_http_client:<br/> def __init__(self, proxy=None, user_agent='Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3'): <br/> self.cookie_handler = urllib2.HTTPCookieProcessor(cookielib.CookieJar())<br/> self.redirect_handler = urllib2.HTTPRedirectHandler()<br/> self.http_handler = urllib2.HTTPHandler()<br/> self.https_handler = urllib2.HTTPSHandler()<br/> <br/> self.opener = urllib2.build_opener(self.http_handler,<br/> self.https_handler,<br/> self.cookie_handler,<br/> self.redirect_handler)<br/> <br/> if proxy:<br/> self.proxy_handler = urllib2.ProxyHandler(proxy)<br/> self.opener.add_handler(self.proxy_handler)<br/> <br/> self.opener.addheaders = [('User-agent', user_agent)]<br/> <br/> urllib2.install_opener(self.opener)<br/> <br/> def request(self, url, params={}, timeout=60):<br/> if params:<br/> params = urllib.urlencode(params)<br/> html = urllib2.urlopen(url, params, timeout)<br/> else:<br/> html = urllib2.urlopen(url)<br/> <br/> return html.read()<br/><br/><br/>bot = atape_http_client()<br/>params = {}<br/><br/>print bot.request("https://stat.byfly.by/cgi-bin/cgi.exe?function=is_newlog")</pre></div>