使用urllib问题从互联网上下载文件

时间:2015-03-04 06:16:59

标签: python urllib

我正在尝试使用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

我的问题是有些网站没有所有参数文件。例如,使用我的代码,站点1没有flowcday但python仍然创建没有内容的zip文件。如果没有数据,如何停止python创建这些文件?

非常感谢,

1 个答案:

答案 0 :(得分:0)

我认为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