Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.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
请求:使用python 3下载excel文件(对于以16为基数的int()无效)_Python_Excel_Python 3.x_Download_Python Requests - Fatal编程技术网

请求:使用python 3下载excel文件(对于以16为基数的int()无效)

请求:使用python 3下载excel文件(对于以16为基数的int()无效),python,excel,python-3.x,download,python-requests,Python,Excel,Python 3.x,Download,Python Requests,我是python新手,我正在学习使用它来为我搜集一些数据,但我无法下载excel文件,原因是我不理解。我想下载此excel文件,当我在任何浏览器中打开此链接时,它会尝试保存excel文件: 基于前面的一个问题(请参阅),我在python 3中使用了如下请求: import requests, os url="http://www5.registraduria.gov.co/CuentasClarasPublicoCon2014/Consultas/Candidato/Formulario5

我是python新手,我正在学习使用它来为我搜集一些数据,但我无法下载excel文件,原因是我不理解。我想下载此excel文件,当我在任何浏览器中打开此链接时,它会尝试保存excel文件:

基于前面的一个问题(请参阅),我在python 3中使用了如下请求:

import requests, os


url="http://www5.registraduria.gov.co/CuentasClarasPublicoCon2014/Consultas/Candidato/Formulario5xls/2"

print("Downloading...")
requests.get(url)
output = open('test.xls', 'wb')
output.write(resp.content)
output.close()
print("Done!")
我认为问题不在于创建test.xls后写入数据的代码部分,而是作为一个空文件。requests.get给了我以下错误(后面还有几个错误):

我也尝试过使用urllib,但仍然失败。

这似乎是一个错误

解决此问题的一种方法是使用
HTTP1.0
。要执行此操作,请将
httplib
变量
\u http\u vsn
\u http\u vsn\u str
设置为类似

用于Python 2

import requests, os
import httplib

httplib.HTTPConnection._http_vsn = 10
httplib.HTTPConnection._http_vsn_str = 'HTTP/1.0'

url="http://www5.registraduria.gov.co/CuentasClarasPublicoCon2014/Consultas/Candidato/Formulario5xls/2"

print("Downloading...")
resp = requests.get(url)
with open('test.xls', 'wb') as output:
    output.write(resp.content)
print("Done!")
对于Python3
httplib
被重命名为
http.client
,因此代码变为

import requests, os
import http.client

http.client.HTTPConnection._http_vsn = 10
http.client.HTTPConnection._http_vsn_str = 'HTTP/1.0'

url="http://www5.registraduria.gov.co/CuentasClarasPublicoCon2014/Consultas/Candidato/Formulario5xls/2"

print("Downloading...")
resp = requests.get(url)
with open('test.xls', 'wb') as output:
    output.write(resp.content)
print("Done!")

如果您尝试使用wget或curl,则URL似乎有问题。来自wget:“2015-11-03 22:01:59(52.7 KB/s)-字节21504处读取错误(成功)。正在重试。”。来自curl:“curl:(18)传输已结束,剩余未完成的读取数据”谢谢!这很有效。问题,如果我在几个链接上创建一个循环,我只需要更改http变量一次,对吗?
import requests, os
import http.client

http.client.HTTPConnection._http_vsn = 10
http.client.HTTPConnection._http_vsn_str = 'HTTP/1.0'

url="http://www5.registraduria.gov.co/CuentasClarasPublicoCon2014/Consultas/Candidato/Formulario5xls/2"

print("Downloading...")
resp = requests.get(url)
with open('test.xls', 'wb') as output:
    output.write(resp.content)
print("Done!")