使用Python urllib2,请求或pandas解决[没有权限']错误

时间:2016-05-06 08:38:02

标签: python pandas python-requests urllib2 backend

我试图使用urllib2加载csv(在这个例子中我使用urllib2,但是当我使用pandas或者请求时会发生完全相同的错误)但是每当我尝试阅读它时,我都会得到一个[&#39 ;没有许可']错误:

导入csv import urllib2

url = 'https://...'
response = urllib2.urlopen(url)
cr = csv.reader(response)

for row in cr:
    print row

我alredy使用完全相同的方法从不同的来源下载其他csv,而这个是唯一一个出现问题的方法。源是一个外部后端,可能有一些规则反对抓取某种类型,因为当我从浏览器手动使用url时,.csv下载工作正常。

以下是响应。 dict 输出,看起来也不错:

>>> response.__dict__

     {'fp': <socket._fileobject object at 0x7f066c6c1ad0>, 'fileno': <bound method _fileobject.fileno of <socket._fileobject object at
 0x7f066c6c1ad0>>, 'code': 200, 'read': <bound method _fileobject.read
 of <socket._fileobject object at 0x7f066c6c1ad0>>, 'readlines': <bound
 method _fileobject.readlines of <socket._fileobject object at
 0x7f066c6c1ad0>>, 'next': <bound method _fileobject.next of
 <socket._fileobject object at 0x7f066c6c1ad0>>, 'headers':
 <httplib.HTTPMessage instance at 0x7f066a0b9758>, '__iter__': <bound
 method _fileobject.__iter__ of <socket._fileobject object at
 0x7f066c6c1ad0>>, 'url':
 'https://....',
 'msg': 'OK', 'readline': <bound method _fileobject.readline of
 <socket._fileobject object at 0x7f066c6c1ad0>>}

修改

网址已包含用户验证,在这种情况下是静态的:

url = 'https://www.xxx.cm/admin/index.php?
editlanguage=1
&stoken=yyy
&cl=cvvcontrolpanel
&fnc=downloadExportFile
&csv_profile_id=20'

我的令牌始终相同,即使在关闭会话后,即使在我的浏览器中尝试网址,下载也能正常工作。

0 个答案:

没有答案