python_爬虫获取Modis数据下载页面的数据链接

# -*- coding: utf-8 -*-
"""
Created on Sat Jul 21 14:35:57 2018

@author: Administrator
"""
import re
import urllib
from bs4 import BeautifulSoup
import csv
rawurl=r'https://e4ftl01.cr.usgs.gov/MOLT/MOD11A2.006/2005.09.30/'    #20050930数据下载页面链接
file=r'G:\MOD13A3_NDVI\DATA'    #链接存储位置
t=[]
urls=[]
U=[]
PP=[]
content = urllib.request.urlopen(rawurl).read().decode('ascii')  #获取页面的HTML
soup = BeautifulSoup(content, 'lxml')
print(soup.prettify())
s=[soup.find_all('a')]
#print(soup.find_all('a'))
#使用正则表达匹配下载需要的研究区对应行号的Modis数据, 如下为 h2304,h2305等
reinfo=re.compile(r'MOD11A2[0-9a-zA-Z\_.]{10}h23v04[0-9a-zA-Z\_.]{19}hdf$')  #正则表达匹配
reinfo1=re.compile(r'MOD11A2[0-9a-zA-Z\_.]{10}h23v05[0-9a-zA-Z\_.]{19}hdf$') #正则表达匹配
reinfo2=re.compile(r'MOD11A2[0-9a-zA-Z\_.]{10}h24v04[0-9a-zA-Z\_.]{19}hdf$') #正则表达匹配
reinfo3=re.compile(r'MOD11A2[0-9a-zA-Z\_.]{10}h24v05[0-9a-zA-Z\_.]{19}hdf$') #正则表达匹配
reinfo4=re.compile(r'MOD11A2[0-9a-zA-Z\_.]{10}h25v04[0-9a-zA-Z\_.]{19}hdf$') #正则表达匹配
reinfo5=re.compile(r'MOD11A2[0-9a-zA-Z\_.]{10}h25v05[0-9a-zA-Z\_.]{19}hdf$') #正则表达匹配
print (soup.select('a'))
t=soup.select('a')
for i in t:
    urls.append(i.get('href')) #获取href后的链接
for j in urls:
    if re.findall(reinfo,j) or re.findall(reinfo1,j) or re.findall(reinfo2,j) or re.findall(reinfo3,j) or re.findall(reinfo4,j) or re.findall(reinfo5,j):
        U.append(j)
URLdata=open(r'G:\MOD11A2_LandSurfaceTem\URLTEM.txt','w') #新建用于保存链接的TXT
writer = csv.writer(URLdata)
M=list(set(U))
for n in M:
    downURL=rawurl+n
    PP.append(downURL)
    print(PP)

for P in PP:

    URLdata.writelines(P+'\n')   #将链接写入TXT
URLdata.close()

可在代码后添加下载保存语句,循环存储下载链接,进行数据下载,也可以将链接复制到IDM或者迅雷进行批量下载。

你可能感兴趣的:(python)