写了一个批量下载页面以及页面引用图片的脚本

#!/bin/bash
#
#批量下载页面以及页面引用图片的脚本
#
#write by since1986 at 2014-05-12

#页面引用图片的目标下载目录
img_download_destination_folder="/opt/gbk/inc/wbts"

#页面引用图片的下载列表文件
img_download_list_file_path="/tmp/page_and_img_download.list"

#页面引用图片的引用方式的正则
img_regex="http://\S*(\.jpg|\.gif)"

#读取下载任务定义文件 下载任务定义文件使用 每行一段 “要下载的页面链接=下载目标路径” 的形式定义多个下载任务
page_src_url_map=`cat page_urls.map`


#循环下载任务定义中的每一项下载任务
for line in $page_src_url_map
    do
        page_src_url=`echo $line | cut -d= -f1` #从下载定义中获得要下载页面的源地址
        page_desc_path=`echo $line | cut -d= -f2` #从下载定义中获得要下载页面的目标路径
        wget $page_src_url -c -O $page_desc_path #使用断点续传的方式下载页面
        cat $page_desc_path | egrep -o $img_regex > $img_download_list_file_path #提取下载好的页面中包含的引用图片的链接并保存为下载列表文件
        wget -c -P ${img_download_destination_folder}/img/ -i $img_download_list_file_path #依据引用图片下载列表文件下载引用图片
        rm -rf $img_download_list_file_path #删除引用图片下载列表文件
    done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
运行环境 .NET Framework2.0 开发工具 Microsoft Visual Studio 2005 二. 部分代码说明(主要讲解异步分析和下载): 异步分析下载采取的策略是同时分析同时下载,即未等待数据全部分析完毕就开始把已经分析出来的图片链接开始下载下载成功的均在List框链接前面划上了√ ,未能下载图片有可能是分析错误或者是下载异常。 1. 异步分析部分代码 /// /// 异步分析下载 /// private void AsyncAnalyzeAndDownload(string url, string savePath) { this.uriString = url; this.savePath = savePath; #region 分析计时开始 count = 0; count1 = 0; freq = 0; result = 0; QueryPerformanceFrequency(ref freq); QueryPerformanceCounter(ref count); #endregion using (WebClient wClient = new WebClient()) { AutoResetEvent waiter = new AutoResetEvent(false); wClient.Credentials = CredentialCache.DefaultCredentials; wClient.DownloadDataCompleted += new DownloadDataCompletedEventHandler(AsyncURIAnalyze); wClient.DownloadDataAsync(new Uri(uriString), waiter); //waiter.WaitOne(); //阻止当前线程,直到收到信号 } } /// /// 异步分析 /// protected void AsyncURIAnalyze(Object sender, DownloadDataCompletedEventArgs e) { AutoResetEvent waiter = (AutoResetEvent)e.UserState; try { if (!e.Cancelled && e.Error == null) { string dnDir = string.Empty; string domainName = string.Empty; string uri = uriString; //获得域名 http://www.sina.com/ Match match = Regex.Match(uri, @"((http(s)?://)?)+[\w-.]+[^/]");//, RegexOptions.IgnoreCase domainName = match.Value; //获得域名最深层目录 http://www.sina.com/mail/ if (domainName.Equals(uri
批量下载MODIS数据,可以按照以下步骤进行操作: 1. 登录MODIS官方网站(LAADS DAAC)\[1\],在"Find Data"页面搜索需要的相关数据。输入数据类型、时间范围和地理范围等信息进行搜索。例如,你可以搜索MOD15A2H产品数据,时间范围为2020年1月1日至2020年12月31日,地理范围为西安地区。 2. 在搜索结果中找到需要的数据,点击下载按钮。这将打开一个表格。 3. 使用脚本读取表格中的数据,并点击下载按钮。请注意,页面加载可能较慢,而且数据是逐条加载的,因此需要处理好下载的顺序,以确保数据能够完整下载\[2\]。 4. 下载的数据可能是缩略图相关的信息,可以根据返回的信息拼接出完整的下载链接。例如,缩略图的地址可以通过前缀(https://ladsweb.modaps.eosdis.nasa.gov/)+接口返回的URL(/archive/allData/61/MOBRGB/2023/020)+返回信息中的文件名(MOBRGB.A2023020.0530.061.2023020164537.jpg)来得到\[3\]。 需要注意的是,下载MODIS数据可能需要使用selenium等工具进行网自动化操作。确保已经安装了selenium,并按照需要的环境进行配置。 希望以上信息对你有帮助!如果还有其他问题,请随时提问。 #### 引用[.reference_title] - *1* [MODIS数据批量下载](https://blog.csdn.net/m0_48011081/article/details/128643919)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [python批量下载modis数据(可筛选日期、范围、数据类型)](https://blog.csdn.net/Neuromancerr/article/details/128732342)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值