我正在创建一个程序,通过读取同一个游戏/应用程序的.jad文件中指定的URL,从web服务器下载一个.jar(java)文件。我使用的是Python3.2.1
我已经成功地从JAD文件中提取了JAR文件的URL(每个JAD文件都包含JAR文件的URL),但是正如您所想象的,提取的值是type()string。
相关功能如下:
def downloadFile(URL=None):
import httplib2
h = httplib2.Http(".cache")
resp, content = h.request(URL, "GET")
return content
downloadFile(URL_from_file)
但是我总是得到一个错误,上面函数中的类型必须是字节,而不是字符串。我试过使用URL.encode('utf-8')和bytes(URL,encoding='utf-8'),但总是会得到相同或类似的错误。
所以基本上我的问题是,当URL存储为字符串类型时,如何从服务器下载文件?
如果要将网页内容获取为变量,只需} :
read
的响应^{下载和保存文件的最简单方法是使用^{} 函数:
但请记住,
urlretrieve
被认为是legacy,可能会被弃用(但不确定原因)。因此,最正确的方法是使用^{} 函数返回一个表示HTTP响应的类文件对象,并使用^{} 将其复制到实际文件中。
如果这看起来太复杂,您可能需要更简单,将整个下载存储在一个
bytes
对象中,然后将其写入文件。但这只适用于小文件。可以动态提取
.gz
(可能还有其他格式)压缩数据,但这样的操作可能需要HTTP服务器支持对文件的随机访问。我希望我能正确理解这个问题,即:当URL存储为字符串类型时,如何从服务器下载文件?
我使用以下代码下载文件并将其保存在本地:
每当需要与HTTP请求相关的东西时,我都会使用
requests
包,因为它的API很容易启动:首先,安装
requests
那么代码:
相关问题 更多 >
编程相关推荐