繁体   English   中英

使用python下载带日期的csv文件

[英]Download csv file with date using python

这是我需要下载的链接

我的问题是日期。 我的示例代码不接受这种URL。 你能帮我这个家伙吗? 谢谢!

import urllib2

url = "wesm.ph/chart/export/luzon_dmd_csv_export.php?date=201705&hour=24"

file_name = url.split('/')[-1]
u = urllib2.urlopen(url)
f = open(file_name, 'wb')
meta = u.info()
file_size = int(meta.getheaders("Content-Length")[0])
print "Downloading: %s Bytes: %s" % (file_name, file_size)

file_size_dl = 0
block_sz = 8192
while True:
buffer = u.read(block_sz)
if not buffer:
    break

file_size_dl += len(buffer)
f.write(buffer)
status = r"%10d  [%3.2f%%]" % (file_size_dl, file_size_dl * 100. /    file_size)
status = status + chr(8)*(len(status)+1)
print status,

f.close()

您需要在上面的代码示例中进行两项更改。 在网址中添加“ http://”。 querystring应该以以下方式添加:

url = "http://wesm.ph/chart/export/luzon_dmd_csv_export.php"
queryargs = { 'date':'201705', 'hour':'24' }
data = urllib.urlencode(queryargs)
u = urllib.urlopen(url,data)

该代码应最终如下所示:

import urllib2
import urllib

url = "http://wesm.ph/chart/export/luzon_dmd_csv_export.php"
queryargs = { 'date':'201705', 'hour':'24' }
data = urllib.urlencode(queryargs)
file_name = url.split('/')[-1].split('.')[-1]+'.csv'
u = urllib.urlopen(url,data)
f = open(file_name, 'wb')
meta = u.info()
file_size = int(meta.getheaders("Content-Length")[0])
print "Downloading: %s Bytes: %s" % (file_name, file_size)

file_size_dl = 0
block_sz = 8192
while True:
    buffer = u.read(block_sz)
    if not buffer:
        break

    file_size_dl += len(buffer)
    f.write(buffer)
    status = r"%10d  [%3.2f%%]" % (file_size_dl, file_size_dl * 100. /    file_size)
    status = status + chr(8)*(len(status)+1)
    print status,

f.close()
import requests

r = requests.get('http://wesm.ph/chart/export/luzon_dmd_csv_export.php?date=20160115&hour=24', stream=True)
with open('filename.csv', 'wb') as fd:
    for chunk in r.iter_content(chunk_size=128):
        fd.write(chunk)

只是使用requests

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM