Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t在python2.7上使用urllib访问https站点 eduardo@camizao:/$python2.7 Python 2.7.3(默认值,2013年9月26日,20:03:06) [GCC 4.6.3]关于linux2 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。 >>>导入URL库 >>>url1=http://www.google.com' >>>url2=https://www.google.com' >>>f=urllib.urlopen(url1) >>>f=urllib.urlopen(url2) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“/usr/lib/python2.7/urllib.py”,urlopen中的第87行 返回opener.open(url) 文件“/usr/lib/python2.7/urllib.py”,第211行,打开 返回getattr(self,name)(url) open_http中的文件“/usr/lib/python2.7/urllib.py”,第355行 “状态行不正确”,无) IOError:(“http协议错误”,0,“状态行错误”,无) >>>_Python_Ssl_Https_Urllib - Fatal编程技术网

Can';t在python2.7上使用urllib访问https站点 eduardo@camizao:/$python2.7 Python 2.7.3(默认值,2013年9月26日,20:03:06) [GCC 4.6.3]关于linux2 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。 >>>导入URL库 >>>url1=http://www.google.com' >>>url2=https://www.google.com' >>>f=urllib.urlopen(url1) >>>f=urllib.urlopen(url2) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“/usr/lib/python2.7/urllib.py”,urlopen中的第87行 返回opener.open(url) 文件“/usr/lib/python2.7/urllib.py”,第211行,打开 返回getattr(self,name)(url) open_http中的文件“/usr/lib/python2.7/urllib.py”,第355行 “状态行不正确”,无) IOError:(“http协议错误”,0,“状态行错误”,无) >>>

Can';t在python2.7上使用urllib访问https站点 eduardo@camizao:/$python2.7 Python 2.7.3(默认值,2013年9月26日,20:03:06) [GCC 4.6.3]关于linux2 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。 >>>导入URL库 >>>url1=http://www.google.com' >>>url2=https://www.google.com' >>>f=urllib.urlopen(url1) >>>f=urllib.urlopen(url2) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“/usr/lib/python2.7/urllib.py”,urlopen中的第87行 返回opener.open(url) 文件“/usr/lib/python2.7/urllib.py”,第211行,打开 返回getattr(self,name)(url) open_http中的文件“/usr/lib/python2.7/urllib.py”,第355行 “状态行不正确”,无) IOError:(“http协议错误”,0,“状态行错误”,无) >>>,python,ssl,https,urllib,Python,Ssl,Https,Urllib,当我尝试使用urllib连接到https站点时,我遇到了上面的错误。 代理已正确设置。在调试python代码时,我注意到在urllib.py中没有执行对ssl库的导入。因此,也不会执行https调用。有人能帮我吗?我必须使用urllib,而不是urllib2或另一个。提前谢谢 你的写作方式没有问题,至少: eduardo@camizao:/$ python2.7 Python 2.7.3 (default, Sep 26 2013, 20:03:06) [GCC 4.6.3] on linu

当我尝试使用urllib连接到https站点时,我遇到了上面的错误。
代理已正确设置。在调试python代码时,我注意到在urllib.py中没有执行对ssl库的导入。因此,也不会执行https调用。有人能帮我吗?我必须使用urllib,而不是urllib2或另一个。提前谢谢

你的写作方式没有问题,至少:

eduardo@camizao:/$ python2.7 
Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib
>>> url1 = 'http://www.google.com'
>>> url2 = 'https://www.google.com'
>>> f = urllib.urlopen(url1) 
>>> f = urllib.urlopen(url2)
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "/usr/lib/python2.7/urllib.py", line 87, in urlopen
  return opener.open(url)
 File "/usr/lib/python2.7/urllib.py", line 211, in open
  return getattr(self, name)(url)
 File "/usr/lib/python2.7/urllib.py", line 355, in open_http
  'got a bad status line', None)
IOError: ('http protocol error', 0, 'got a bad status line', None)
>>> 
$python
Python 2.7.4(默认值,2013年9月26日,03:20:26)
[GCC 4.7.3]关于linux2
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入URL库
>>>url1=http://www.google.com'
>>>url2=https://www.google.com'
>>>f=urllib.urlopen(url1)
>>>f=urllib.urlopen(url2)
>>>f.read()[:15]
''
>>>
所以这不是问题所在。它必须与您的环境或配置有关。你说你在使用代理

编辑:

我可以通过开放代理打开它(不包括所述代理,因为谁知道它是否粗略-用您自己的代理替换:

$ python
Python 2.7.4 (default, Sep 26 2013, 03:20:26) 
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib
>>> url1 = 'http://www.google.com'
>>> url2 = 'https://www.google.com'
>>> f = urllib.urlopen(url1)
>>> f = urllib.urlopen(url2)
>>> f.read()[:15]
'<!doctype html>'
>>>
$python
Python 2.7.4(默认值,2013年9月26日,03:20:26)
[GCC 4.7.3]关于linux2
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入urllib2
>>>proxy_handler=urllib2.ProxyHandler({'http':'http://some-sketchy-open-proxy'})
>>>opener=urlib2.build\u opener(代理\u处理程序)
>>>开门,开门https://www.google.com')
>>>read()[:15]
''
>>> 
用你自己的代理URL试试(注意我用的是urllib2,不是urllib)。希望这对你有帮助

编辑2

仅使用urllib:

$ python
Python 2.7.4 (default, Sep 26 2013, 03:20:26) 
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib2
>>> proxy_handler = urllib2.ProxyHandler({'http': 'http://some-sketchy-open-proxy'})
>>> opener = urllib2.build_opener(proxy_handler)
>>> opener.open('https://www.google.com')
<addinfourl at 140512985881056 whose fp = <socket._fileobject object at 0x7fcbba9b1ed0>>
>>> _.read()[:15]
'<!doctype html>'
>>> 
$python
Python 2.7.4(默认值,2013年9月26日,03:20:26)
[GCC 4.7.3]关于linux2
有关详细信息,请键入“copyright”、“credits”或“license()”。
>>>导入URL库
>>>代理={'http':'189.112.3.87:3128'}
>>>url='1〕https://www.google.com'
>>>filehandle=urllib.urlopen(url,proxies=proxies)
>>>filehandle.read()[:15]
''
>>> 

看看这里的想法:事实上,我使用的是一个代理,比如.Curl、Wget和git,即使通过代理也可以正常工作。我还需要执行其他配置吗?Tks@camizao用一个使用代理的版本编辑了答案。我真的很感激,chucksmash,但我只需要使用urllib.Tks
$ python
Python 2.7.4 (default, Sep 26 2013, 03:20:26) 
[GCC 4.7.3] on linux2
Type "copyright", "credits" or "license()" for more information.
>>> import urllib
>>> proxies = {'http': '189.112.3.87:3128'}
>>> url = 'https://www.google.com'
>>> filehandle = urllib.urlopen(url,proxies=proxies)
>>> filehandle.read()[:15]
'<!doctype html>'
>>>