我如何解决这个urllib2.URLError:<urlopen error =“”[errno =“”10013]?=“”

时间:2016-03-13 16:37:40

标签: python csv urllib2 anaconda

=“”

我是在Windows 8上,安装了Anaconda Python 2.7.11。 这是我的python代码:

import urllib2
url = "http://real-chart.finance.yahoo.com/table.csv?s=GOOG&ignore=.csv"
response = urllib2.urlopen(url)
data = response.read()
read = csv.DictReader(data)

我刚刚在其他地方找到了这段代码并将其复制(并用我自己的url替换它)。

我收到此错误信息:

Traceback (most recent call last):
  File "01_get_traindata.py", line 25, in <module>
    response = urllib2.urlopen(url)
  File "C:\Users\Tin Tran\Anaconda2\lib\urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Users\Tin Tran\Anaconda2\lib\urllib2.py", line 431, in open
    response = self._open(req, data)
  File "C:\Users\Tin Tran\Anaconda2\lib\urllib2.py", line 449, in _open
    '_open', req)
  File "C:\Users\Tin Tran\Anaconda2\lib\urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "C:\Users\Tin Tran\Anaconda2\lib\urllib2.py", line 1227, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "C:\Users\Tin Tran\Anaconda2\lib\urllib2.py", line 1197, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [Errno 10013] An attempt was made to access a s
ocket in a way forbidden by its access permissions>

我在其他地方读到它可能需要做一些防火墙,所以我已经禁用了我的防火墙并且它仍在发生。

我尝试过的事情: 将python.exe设置为以管理员身份运行(在提示以管理员身份运行后,我得到&#34;访问被拒绝。&#34;在命令窗口中) 已经允许我的防火墙中的python.exe(仍然没有工作)。 甚至完全关闭了防火墙(仍然无法工作)。 我查了一下,我的帐户也是管理员。

重新启动计算机后,

更新:已解决。 我仍然关闭防火墙并允许python.exe通过我的防火墙。 也许需要重启。 奇怪。

2 个答案:

答案 0 :(得分:0)

不确定你要做什么但是尝试:

import urllib
urllib.urlretrieve ("http://real-chart.finance.yahoo.com/table.csv?s=GOOG&ignore=.csv", "csv.csv")

在本地工作并保存文件。

然后尝试在您的计算机上处​​理您的文件?

答案 1 :(得分:-1)

您的代码适用于Win10,CPython。可能会发生问题,因为您在非特权模式下运行脚本。参见:

https://stackoverflow.com/a/2779304/1113207

因此,您可以尝试以管理员身份运行python解释器或/并禁用UAC。

其他可能的原因是本地防火墙阻止了连接:

https://stackoverflow.com/a/6806143/1113207

尝试禁用它以查看是否存在问题。