这次依旧是,不过下载的是Australian Bureau of Statistics的数据,都是xls的表格,网址为:http://www.abs.gov.au。网页打开左边有棵树目录,里面记录的澳大利亚的行政区名,然后后面有个get data 的链接,不过这棵树是动态加载的,客户端没法获取到全部的内容,像我这种从来没有做过网络编程的,脸html都看不懂的人,更不懂ajax了。笨人有笨方法,于是就把树全部点开,然后把网页的源代码保存下来,整理了一个txt文件,内容和下面的类似:

New South Wales - Get Data
一共有1665行,格式都和上面的类似。可以看到get data的链接是/ausstats/abs@nrp.nsf/lookup/1Main+Features12006-2010,然后就是从上面的字符串中提取get data的链接,获取连接后,使用urllib获取url地址的html内容。

然后再从获取的html中查找xls的下载地址,知道xls的下载地址,使用urlretrieve函数保存到本地即可。整个代码72行,如下:

# -*- coding:gb2312 -*-

# 有问题请联系我 liminlu0314@gmail.com

import sys

import urllib

import re

#从读取的html中解析下载地址

def ParserXlsUrl(content):

iPost = content.find('%2Exls&')

if iPost == -1:

return ''

strTemp = content[iPost-100:iPost+300]

iPos = strTemp.find('<')

strTemp = strTemp[:iPos+7]

#/AUSSTATS/freenrp.nsf/log?openagent&Region%5F1%2Exls&1&2006%2D2010%20National%20Regional%20Profile&CCAA9316217A9E75CA25793B001332FA&0&2006%2D2010&04%2E11%2E2011&Latest

return 'http://www.abs.gov.au' + strTemp

#从读进来的字符串解析url

def Save2Xls(lines):

iPos = lines.find('>')

strTmp = lines[iPos+1:]

iPos = strTmp.find('<')

strName = strTmp[:iPos] #取出Name

iPos = strTmp.find('"')

strTmp = strTmp[iPos+1:]

iPos = strTmp.find('"')

strTmp = strTmp[:iPos]

#/ausstats/abs@nrp.nsf/lookup/1Main+Features12006-2010

iPos = strTmp.find('lookup/')

strTmp = strTmp[iPos+7:]

iPos = strTmp.find('Main+')

strIdCode = strTmp[:iPos]

strStart = 'http://www.abs.gov.au/AUSSTATS/abs@nrp.nsf/DetailsPage/'

strMid = '2006-2010?OpenDocument&tabname=Details&prodno='

strEnd = '&issue=2006-2010&num=&view=&'

strUrl = strStart + strIdCode + strMid + strIdCode + strEnd

html = urllib.urlopen(strUrl)#打开连接

content = html.read()#获取页面内容

strUrlXls = ParserXlsUrl(content)

if strUrlXls == '':

return 0

strXlsDir = './Xls/'

strXls = strXlsDir + strName + '_' + strIdCode + '.xls'

urllib.urlretrieve(strUrlXls, strXls) #开始下载

return 1

if __name__ =="__main__":

f = open('GetUrl.htm', 'r')

alllines = f.readlines()

f.close()

index = 0

for eachline in alllines:

Save2Xls(eachline)

index = index + 1

print "current is %d of 1665, precent %d%%" %(index, (int)(index / 1665.0 * 100))之后程序写完后,发现不知道下载到什么地方了,又加了个进度信息。喜欢python,同样的代码用C++我不敢想象,还是Python吧。

如何用python批量下载数据_使用Python批量下载数据相关推荐

  1. python怎么批量下载年报_使用Python批量下载Wind数据库中的PDF报告

    原标题:使用Python批量下载Wind数据库中的PDF报告 背景 最近小编出于工作需要,准备在Wind金融数据终端批量下载上市公司2019年第一季度业绩预告.通过相关的条件检索,发现其相关数据有近百 ...

  2. 基于python的气象数据分析_基于python的《Hadoop权威指南》一书中气象数据下载和map reduce化数据处理及其......

    文档内容: 1:下载<hadoop权威指南>中的气象数据 2:对下载的气象数据归档整理并读取数据 3:对气象数据进行map reduce进行处理 关键词:<Hadoop权威指南> ...

  3. python向es写入大量数据_使用Python-elasticsearch-bulk批量快速向elasticsearch插入数据_李谦的博客-CSDN博客...

    from elasticsearch import Elasticsearch from elasticsearch import helpers import pymysql import time ...

  4. python获取股票逐笔交易数据_利用python下载股票交易数据

    前段时间玩Python时无意看到了获取股票交易数据的tushare模块,由于自己对股票交易挺有兴趣,加上现在又在做数据挖掘工作,故想先将股票数据下载到数据库中,以便日后分析: # 导入需要用到的模块 ...

  5. 爬虫goodreads数据_使用Python从Goodreads数据中预测好书

    爬虫goodreads数据 Photo of old books by Ed Robertson on Unsplash 埃德·罗伯森 ( Ed Robertson)的旧书照片,内容为Unsplash ...

  6. 从ncbi下载数据_如何从NCBI下载所有细菌组件

    从ncbi下载数据 One of the most important steps in genome analysis is gathering the data required for down ...

  7. 利用python从网页查找数据_利用Python模拟淘宝的搜索过程并对数据进行可视化分析...

    数据挖掘入门与实战 公众号: datadw 本文讲述如何利用Python模拟淘宝的搜索过程并对搜索结果进行初步的数据可视化分析. 搜索过程的模拟:淘宝的搜索页面有两种形式, 一种形式是, 2019/2 ...

  8. python编程免费小说_使用Python开发小说下载器,不再为下载小说而发愁

    有点荒废 这几天有点荒废,之前弃坑的网文<伏天氏>,这几天又给捡起来了.然后一发不可收拾的只想看小说,荒废了我的学习.在这里我要检讨啊..... 像我这样的穷人,看小说肯定是找免费的网站, ...

  9. python 文件批量转换格式_使用python批量化音乐文件格式转换的实例

    使用python批量化音乐文件格式转换的实例 最近在做声音文件数据处理,写了一个自动将m4a文件转化为wav的脚本. import os m4a_path = "/Users/Downloa ...

最新文章

  1. Python 爬虫进阶篇-4行代码实现爬取指定网站中的全部图片实例演示及原理剖析
  2. Geoserver中调整polygon图层的填充颜色透明度
  3. eclipse 设置 content type 编码格式
  4. 代理模式【介绍、静态代理、动态代理、入门、应用】
  5. 循环结构_do-while循环
  6. 为什么打不开_发票查重百科导出的发票台账为什么附件打不开?
  7. 手把手JDK环境变量配置
  8. 实现两个Mysql数据库同步
  9. linux 网卡驱动 优化,Linux多核环境网卡驱动优化研究①.PDF
  10. TreeMap 排序
  11. matlab解耦合方程,如何在Matlab中求解耦合随机微分方程
  12. React第一天(尚硅谷视频)
  13. 干货 | 基于JMP的方差分析及两两比较的思路与实现
  14. 解决方案|致拓T8数字化ERP
  15. 跨站脚本(XSS)漏洞
  16. 计算机视觉(相机标定)-1.1-针孔摄像机透镜
  17. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  18. matlab 复数函数拟合,lsqcurvefit拟合结果为复数
  19. GREENPLUM 5.17 centos 6.10 详细安装步骤
  20. 【Java整合Milvus】SpringBoot整合Milvus向量数据库以及虹软SDK实现以图搜图

热门文章

  1. Flink架构及工作原理
  2. Spark函数详解系列--RDD基本转换
  3. 一次CMS GC问题排查过程(理解原理+读懂GC日志)
  4. Android进阶你必须要了解的知识:ThreadLocal
  5. Django扩展xadmin后台管理
  6. Markovs Chains采样
  7. 93. Restore IP Addresses
  8. zabbix分布式监控环境完全编译安装部署
  9. HTTP缓存详解之etag
  10. GetGeneratedKeysHelper 与反射