#!/usr/bin/perl
use warnings;
use strict;
use LWP::Simple;
my $downloadDir="e:\\365doc\\picture";
my $tomcatDir = 'd:\Tomcat6.0\webapps\picture';
my $linkTemp = 'd:\temp\bb.html';
my $picTemp = 'd:\temp\cc.html';
my $baseUrl01 = "http://localhost:8080/";
my $baseUrl02 = "http://localhost:8080/mingbai365/";
my ($startUrl) = shift;
my $method = shift;
if(!defined($startUrl) || $startUrl =~ /^no$/){
$startUrl = 'http://localhost:8080/mingbai365/index.mb';
}
if(defined($method) && $method eq "index"){
&getPagePic($startUrl);
&getLinkPic($startUrl);
}else{
&getPagePic($startUrl);
}
# 取页面的链接页面的图片
sub getLinkPic{
my ($indexUrl) = @_;
&writeTemp($linkTemp,&get($indexUrl));
open LINK_SRC, "<$linkTemp";
while(<LINK_SRC>){
if(/(href=")(.*\?.*?)(")/ && //){
my $pageUrl = $2;
print "href is : $2\n";
if($2=~/http/){
&getPagePic($pageUrl);
}else{
if($2=~/mingbai365/){
&getPagePic($baseUrl01.$pageUrl);
}else{
&getPagePic($baseUrl02.$pageUrl);
}
}
}
}
close LINK_SRC;
}
# 取页面内图片
sub getPagePic{
my ($indexUrl) = @_;
print "arg:$indexUrl======================================\n";
my $count =1;
while($count>0){
$count--;
#取得网页的内容写入文件
my $content = get($indexUrl);
&writeTemp($picTemp,$content);
#打开文件,处理内容(不会在内存中处理行,真白痴)
open SRC, "<$picTemp";
while(<SRC>){
#找到图片模式
if(m!(.*)(picture/)(\d+)(/)(.*jpg)(.*)!){
my $picurl="http://www.mingbai365.com/".$2.$3.$4.$5;
my $dest =$downloadDir.'\\'.$3."\\";
#文件夹不存在,新建
if(not -e $dest){
mkdir($dest);
}
#文件不存在,下载
if(not -e $dest.$5){
getstore($picurl, $dest.$5);
}
print "$2$3$4$5\n";
}
}
close SRC;
}
#windows 命令 复制文件
system("xcopy $downloadDir $tomcatDir /d /s /c /y /i");
}
# 写入文件内容
sub writeTemp{
my ($filePath,$content) = @_;
open DEST_FILE, ">$filePath";
print DEST_FILE $content;
close DEST_FILE;
}
print "结束了=================================";
分享到:
相关推荐
下载图片,图片下载器 适合人群:python初学者,想要上手试一试 能学到什么:1、python基本知识 2、pyqt5相关使用 3、beautifulsoup相关使用 阅读建议:此程序功能相对简单,适合初学者用于练手,并不支持商业化...
Console.WriteLine("无法下载图片。"); } } ``` 接下来,我们引入MVVM模式。MVVM的主要思想是将用户界面(View)与业务逻辑(ViewModel)分离,Model层负责数据处理,ViewModel作为两者之间的桥梁。在这个场景中...
总之,C# WinForm中的WebService接口连接服务器上传和下载图片,涉及到了文件操作、网络通信、数据转换等多个技术环节。理解并熟练掌握这些技术,能帮助开发者构建出高效、稳定且功能丰富的桌面应用程序。
适用场景:一键将页面上的全部图片打包下载,纯前端实现。 使用插件:jszip.js、filesaver.js、jquery 下载后直接用chrome、firefox、IE11+打开即可查看效果,仅供学习参考。
在Android开发中,异步批量下载图片并缓存是一个常见的需求,特别是在开发涉及大量图片展示的应用时,如社交应用、电商应用等。本教程将基于提供的Android例子源码,深入探讨如何实现这一功能。 首先,我们需要理解...
在Android平台上,下载图片并保存到用户设备的相册是一项常见的功能。这通常涉及到网络请求、文件操作以及与系统媒体库的交互。以下是对`Android 下载图片保存到相册`这一主题的详细讲解。 首先,我们需要理解...
本教程将详细讲解如何在Android应用中实现批量下载图片并进行高效缓存,以实现非常流畅的用户体验。我们将主要关注LruCache技术,这是一种内存管理策略,有助于优化内存使用。 首先,我们需要理解Android中的图片...
本项目标题为“JAVA批量下载图片”,这显然涉及到使用Java进行网络爬虫技术来实现图片的批量抓取与下载。下面我们将深入探讨这个话题。 首先,我们需要了解Java中的网络请求库,如HttpURLConnection、Apache ...
在QT开发中,我们可以利用其丰富的库功能来实现各种网络操作,包括从HTTP或HTTPS协议的URL下载图片。这个项目提供了一个简单但实用的解决方案,它具有进度条显示功能,并且下载后的文件会保存在构建运行文件夹内。...
Asp.net 中下载图片的方法 在 Asp.net 中,直接将 URL 指向图片可能会导致图片被直接打开,而不是下载。这篇文章将介绍一种解决该问题的方法,即在 Asp.net 中下载图片的方法。 标题解释 该方法的标题为“ Asp.net...
本案例将详细介绍如何利用XUtils来下载图片。 首先,我们需要了解XUtils的核心组件——XUtils框架。XUtils是一个轻量级的Android开发工具包,它整合了网络请求库HttpUtils、图片加载库ImageLoader以及数据库操作库...
根据给定的文件信息,我们可以总结出以下关于“Java批量下载图片”的相关知识点: ### Java批量下载图片:封装实现 #### 1. **程序结构与布局** - 程序使用`JFrame`作为主窗口,通过`JPanel`进行布局管理。 - ...
以下是一个简单的示例,使用`java.net.URL`和`java.io.InputStream`来下载图片数据: ```java public static boolean downloadImage(String imageUrl, String targetFilePath) { try { URL url = new URL...
3. **图片抓取技术**:图片下载工具一般使用HTML解析和网络爬虫技术来识别和下载图片。它们解析HTML代码,找到`<img>`标签,获取src属性值,即图片URL,然后发起下载请求。 4. **批量下载**:批量下载功能是图片...
本示例,即"webView长按点击下载图片",提供了一个简单的解决方案,让用户能够方便地保存网页中的图片,并能在手机图库中查看。 首先,我们需要了解WebView的基本用法。WebView继承自View,可以通过加载HTML、CSS、...
通过C#网络编程的webBrowser获取网页中的url并简单的尝试...其中主要的通过应用程序结合网页知识、正则表达式实现浏览、获取url、下载图片三个功能.而且很清晰的解析了每一步都是以前一步为基础实现的.结合知识博客.
在iOS开发中,为了提升用户体验,我们经常需要在后台异步下载图片并实时更新下载进度。ASIHTTPRequest是一个经典的网络请求库,它提供了丰富的功能来帮助开发者处理这些需求。本篇文章将详细讲解如何利用...
自动下载图片并替换图片地址是一个常见的需求,尤其是在网页抓取过程中。当抓取到含有图片链接的HTML时,为了防止未来原始网站的图片链接失效,我们会将图片下载到本地,同时更新HTML中的图片源地址为本地路径。这一...