Board logo

标题: [网络连接] 批处理怎样下载图片? [打印本页]

作者: hkxinghu    时间: 2010-5-24 15:12     标题: 批处理怎样下载图片?

求一个 下载图片的批处理     要求下载指定网页里的图片 http://www.cserf.ac.cn/uploads/share2/2008/0512/179/     其中/2008/0512/为时间变量   最好是之前提示输入 日期月份    下载的图片保存到指定文件夹 A中  下载最好有进度提示 下载完毕复制图片到文件夹A中
作者: namejm    时间: 2010-5-24 21:15

  你到底是只下载179这个目录下的图片,还是下载指定日期下所有文件夹下的图片?
  下载到文件夹A之后又复制到文件夹A,这是个什么变态的操作?
作者: 523066680    时间: 2010-5-24 21:51

要有wget, 没有搞细节问题
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set result=result.x
  4. set rs2=rs.x
  5. if not exist A (mkdir A)
  6. cd A
  7. wget -O %result% http://www.cserf.ac.cn/uploads/share2/2008/0512/179/
  8. (type %result%|find /i "IMG SRC="| find /i "[IMG]") >%rs2%
  9. for /f "tokens=*" %%a in ('type %rs2%') do (
  10. set line=%%a
  11. set line=!line:*A HREF=!
  12. for /f "tokens=1" %%a in ("!line:.jpg= !") do (set line=%%a)
  13. set line=!line:~2!
  14. if not exist !line!.jpg (wget http://www.cserf.ac.cn/uploads/share2/2008/0512/179/!line!.jpg)
  15. )
  16. pause
复制代码

[ 本帖最后由 523066680 于 2010-5-24 21:53 编辑 ]
作者: hkxinghu    时间: 2010-5-24 22:07

1、要下载179目录下的图片   但是/2008/0512/ 目录分别是179目录的上级目录  2008/0512 是个变量  最好提示输入 这个日期变量 达到下载任何一天的图片      
2、下载到文件夹A之后又复制到文件夹B   原来的写错了
上面那个批处理 提示wget 不是内部或者外部命令
作者: 523066680    时间: 2010-5-24 22:16     标题: 回复 4楼 的帖子

要去下载个wget 保存到system32,或者放到一个适合调用的地方撒~

http://www.bathome.net/viewthread.php?tid=2040&highlight=wget

我仅负责提取那个页面链接,夜深,人闪......

[ 本帖最后由 523066680 于 2010-5-24 22:17 编辑 ]
作者: namejm    时间: 2010-5-24 22:52

提供一个代码,下载完某天的图片后将会让你继续选择其他日期下载。
请严格按照指定格式输入年份和日期:
  1. @echo off
  2. set www=http://www.cserf.ac.cn/uploads/share2
  3. :Main
  4. cls
  5. set day=
  6. set /p day=请输入四位数字格式的下载年份和日期,并以空格分隔:
  7. if not defined day goto Main
  8. curl --create-dirs -o "tmp\%day: =_%.html" "%www%/%day: =/%/179/"
  9. htox32c /ip /u1+4 /O0 tmp\*.html
  10. for %%i in ("tmp\%day: =_%.txt") do (
  11.     for /f "delims=<> tokens=2" %%j in ('findstr /ic:".jpg" %%i') do (
  12.         curl --create-dirs -o "jpg\%day: =_%\%%j" "%www%/%day: =/%/179/%%j"
  13.     )
  14. )
  15. goto Main
复制代码
  需要使用两个第三方命令行工具:curl.exe和HtoX32c.exe,请在第三方命令行工具版块寻找。下载后的文件保存在 "jpg\指定年份_指定日期" 这个文件夹下,没有做复制到指定文件夹B的动作。

  感觉你是需要下载很多文件,用批处理来做会有很多不尽如人意的地方:不能实现断点续传(貌似curl有这个功能,暂时没找打对应的参数)、多次下载的时候需要从头开始下载……建议先用批处理生成图片的具体下载地址,然后导入迅雷等专用下载工具中使用。
作者: hkxinghu    时间: 2010-5-25 07:58

谢谢两位 以上批处理 都达到了我的需要




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2