使用urllib issu从internet下载文件

2024-10-01 11:29:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用urllib从网站下载数据文件。你知道吗

我的密码是

import urllib
url_common = 'http://apps.waterconnect.sa.gov.au/SiteInfo/Data/Site_Data/'
site_list=['4260514','4260512','4260519']
parameter_list=['ecrec','ecday','flowrec','flowcday']
for site in site_list:
    for parameter in parameter_list:        
        try:
            url = url_common+'A'+site+'/'+'a'+site+'_'+parameter+'.zip'
            urllib.urlretrieve(url,'A'+site+'_'+parameter+'.zip')
        except ValueError:
            break

我的问题是有些网站没有所有的参数文件。例如,在我的代码中,site1没有flowcday,但是python仍然创建内容中没有任何内容的zip文件。如果没有数据,如何阻止python创建这些文件?你知道吗

非常感谢


Tags: 文件inurl内容fordataparameter网站
1条回答
网友
1楼 · 发布于 2024-10-01 11:29:22

我想也许urllib2.urlopen更适合这种情况。你知道吗

import urllib2
from urllib2 import URLError

url_common = 'http://apps.waterconnect.sa.gov.au/SiteInfo/Data/Site_Data/'
site_list=['4260514','4260512','4260519']
parameter_list=['ecrec','ecday','flowrec','flowcday']
for site in site_list:
    for parameter in parameter_list:        
        try:
            url = url_common+'A'+site+'/'+'a'+site+'_'+parameter+'.zip'
            name ='A'+site+'_'+parameter+'.zip'
            req = urllib2.urlopen(url)
            with open(name,'wb') as fh:
                fh.write(req.read())
        except URLError,e:
            if e.code==404:
                print name + '  not found. moving on...'
                pass

相关问题 更多 >