Python27 için yeni bir web sitesi çizen bir komut dosyası üzerinde çalışıyorum. Bunu yapmak için urllib2 kullanmaya çalışıyorum ve komut dosyasını çalıştırdığımda birden çok geri izleme hatası yazdırıyor. Öneriler?urllib2 kullanarak Python traceback hatası
Senaryo:
import urllib2, zlib, json
url='https://launches.endclothing.com/api/products'
req = urllib2.Request(url)
req.add_header(':host','launches.endclothing.com');req.add_header(':method','GET');req.add_header(':path','/api/products');req.add_header(':scheme','https');req.add_header(':version','HTTP/1.1');req.add_header('accept','application/json, text/plain, */*');req.add_header('accept-encoding','gzip,deflate');req.add_header('accept-language','en-US,en;q=0.8');req.add_header('cache-control','max-age=0');req.add_header('cookie','__/');req.add_header('user-agent','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/37.0.2062.120 Chrome/37.0.2062.120 Safari/537.36');
resp = urllib2.urlopen(req).read()
resp = zlib.decompress(bytes(bytearray(resp)),15+32)
data = json.loads(resp)
for product in data:
for attrib in product.keys():
print str(attrib)+' :: '+ str(product[attrib])
print '\n'
Hata (lar):
C:\Users\Luke>py C:\Users\Luke\Documents\EndBot2.py
Traceback (most recent call last):
File "C:\Users\Luke\Documents\EndBot2.py", line 5, in <module>
resp = urllib2.urlopen(req).read()
File "C:\Python27\lib\urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "C:\Python27\lib\urllib2.py", line 391, in open
response = self._open(req, data)
File "C:\Python27\lib\urllib2.py", line 409, in _open
'_open', req)
File "C:\Python27\lib\urllib2.py", line 369, in _call_chain
result = func(*args)
File "C:\Python27\lib\urllib2.py", line 1181, in https_open
return self.do_open(httplib.HTTPSConnection, req)
File "C:\Python27\lib\urllib2.py", line 1148, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [Errno 1] _ssl.c:499: error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error>
Burada iyi görünüyor. Hata yok. – jDo
@jDo ve Python 2.7 üzerinde misiniz? – rated
Bu, HTTPS siteleriyle olur ve bilgisayarınızın SSL yazılımının güncelliğini yitirebileceğini veya sunucunun SSL sertifikası gibi sahip olmadığınız bir şeyi istediğini gösterir. Bu sorunların çoğu, 'urllib' yerine, daha iyi bir çözüm sunan ['request'] (http://docs.python-requests.org/en/master/) kullanırsanız ortadan kalkar. Tüm bu konular için ve endüstri standardıdır. –