osm数据下载 python_osm数据下载 python_批量下载osm的分区域的osm文件

这是一个Python脚本,用于从http://download.geofabrik.de批量下载OpenStreetMap的分区域OSM文件。脚本利用requests和BeautifulSoup库解析网页链接,并将下载链接写入osm-from-geofabrik.txt文件,便于使用wget或其他下载工具进行批量下载。同时,提供了使用crontab定时下载的示例。
摘要由CSDN通过智能技术生成

# coding: utf-8

#!/usr/bin/python

# #### http://www.openstreetmap.org 的分区后的osm数据批量下载工具(需要python的requests和BeautifulSoup包)。

# 从 http://download.geofabrik.de/ 提取网页中下载连接,然后写入osm-from-geofabrik.txt。

# 然后可以批量下载:** wget -c -i osm-from-geofabrik.txt ** ,或者载入其它的下载工具。

#

# 或者使用crontab定时下载,编写一个geofabrik-dl.txt(内容如下,指定晚上11:00,每周一到周五执行)。

# 然后执行:crontab crontab.txt。

# ```

# 0 23 * * 1-5 wget -c -N -i osm-from-geofabrik.txt

# 0 6 * * 1-5 killall wget

# ```

# 原始数据下载,参考:** http://planet.openstreetmap.org/planet/ **,  最新版本:http://planet.openstreetmap.org/planet/2016/planet-160411.osm.bz2

#

# ##### by openthings@163.com,http://my.oschina.net/u/2306127/blog

from bs4 import BeautifulSoup as bs

import requests as req

from pprint import *

#获取网页内容,经常访问不到,可以将地址拷贝到浏览器试试。

url = "http://download.geofabrik.de/"

try:

r = req.get(url)

print(r)

except Exception as ex:

print("Error:",ex)

#获取网页中的链接列表

bsr = bs(r.text,"html.parser")

alist = bsr.find_all('a')

#pprint(alist)

#另一种方式获取网页中链接的列表。

#bst = [x.extract() for x in bsr.find_all('a')]

#pprint(bst)

#查找列表

flist = open("osm-from-geofabrik.txt","w")

for a in bst:

#help(a)

a1 = a.attrs['href']

if a1.find('.bz2') > 0:

flist.writelines(a1+"\r\n")

print(a1)

flist.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值