标签: 技术分享
- 作者帖子
未曾管理员dezoomify-rs批量下载的问题,交流区多次有人问到过。由于我不太会写BAT脚本(windows),所以一直未作相关答复
后来看@zhudw 在bookget里面也有生成类似的脚本,但是这个脚本将urls集成到bat脚本里面了,不方便更换新的urls列表。
今天@老杨 分享了他的基于python的下载批处理命令(@45210)
我感觉大多数用户是Windows用户,直接用bat应该就能处理这种问题。大致在网上看了些相关命令格式,拼凑出这个批量处理的BAT脚本(在Windows)
@echo off setlocal enabledelayedexpansion set /a a=1 set /p downdir=Download folder: if "%downdir%"=="" set downdir="download" if not exist %downdir% md %downdir% for /f "delims=" %%i in (urls.txt) do ( dezoomify-rs -l --accept-invalid-certs -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36" %%i %downdir%/!a!.jpg set /a a+=1 timeout /t 0 ) pause
脚本说明
0,首先要创建一个包含分页json/dzi/XML参数的urls.txt文件
1,为了方便归类多种资源,打开脚本会提示输入需要保存的文件夹名(输入后会自动创建,不输入会 默认创建并保存到download目录)
2,需要配合dezoomify-rs使用
3,dezoomify-rs 的相关参数可自行补充
4,如果需要任务延迟可在timeout /t 后面带上秒数,例如10s timeout /t 10
5,如果遇到红字I/O错误,说明文件名占用了(已经存在了)
6,在系统盘以外的盘使用
脚本(downall.bat)下载地址:
d5.shuge.org/s/YRWFW
老杨游客哈哈哈,有效的验证了开放共享是推动进步的力量,别管推动什么了~~
对了,还有一句话,人类所有的发明创造都为了一个字,懒~~~哈哈哈哈
老杨游客刚跑了200多个下载,发现整理url也是累人的事情,继续推进更新~~~
zhudw游客这个批处理写的很有水平,够用了。
未曾管理员@zhudw #45234
现学现卖~~😂
墨雲游客有url的话,我平时都是这样列好,直接复制黏贴就能批量了
比起批量,我倒是更想要提取,和整理的,不过因为每个网站的形式都不同,估计很难有通用的
tigershuai游客又一下載利器,方便了廣大書友,功德無量。
tigershuai游客另外就是zhudw老大的神器可以多線程下載,希望未曾先生這個批處理工具也能增加多線程的功能,這樣下載就更快了。
未曾管理员@tigershuai #45337
dezoomify-rs默认同时下载16个碎片
读书人游客bat应该为小写,没有大写的写法
未曾管理员@读书人 #45353
我觉得作为batch file的缩写,大写也无所谓。其文件扩展名是.bat
老杨游客@墨雲 #45250
说到关键了,url确实要比批量下载更痛。
我之前没用过,最近才开始下载,摸索了俩办法,一个办法就是自己拼url,适合有规律的,还有一个办法就是去爬url
拼装或许可以摸索个通用工具出来,爬取几乎都要单独定制了
xgdd2018游客@未曾
请问这个批量下载脚本也能套用到mac上吗?
未曾管理员@xgdd2018 #52540
bat是windows系统的脚本文件,所以不能用于其它系统
按理说苹果系统更简单,dezoomify-rs 网站有说明
使用如下命令
xargs -d '\n' -n 1 ./dezoomify-rs < ./urls.txt
抱歉,我并没有Mac设备所以无法测试
xgdd2018游客@未曾 #52543
就是在dezoomily-fs 所在文件夹新建一个名为url.txt的文件,把链接放在文件放进里面,然后运行dezoomify-fs?
xgdd2018游客@未曾 #52543
这个xargs命令能进行批量下载吗?能否以familysearch为例,写一个命令行?
zhudw游客@xgdd2018 #52719
你可以换windows使用。mac电脑毕竟是小众用户,一般大厂的软件才会考虑兼容它。
mac电脑要用的好,一般需要编程技能的,至少要会shell编程,才能玩的转。它内置的终端zsh/bash/sh等和linux系统命令是兼容的。
Ru_Evan游客何必这么麻烦,在EXCEL表格把URL调整一下就行了,如下:
bat文件内容:
下载状态:
xgdd2018游客@Ru_Evan #53937
请问一下,需要COOKIE的网站也如何修改网址?
Ru_Evan游客@xgdd2018 #53953
哪家需要啊?
轩辕十四游客@未曾 #52543
轩辕十四游客
xgdd2018游客@Ru_Evan #53962
familysearch
未曾管理员@轩辕十四 #53992
不要着急上来就操作。仔细阅读一下主帖的内容
保存为urls.txt到dezoomify-rs 同一目录
为了方便归类多种资源,打开脚本会提示输入需要保存的文件夹名(输入后会自动创建,不输入会 默认创建并保存到download目录)
脚本(downall.bat)下载地址:
yun.daoon.com/wl/?i...e=download
Ru_Evan游客@xgdd2018 #53953
加 -H "Referer:url" 参数。
xgdd2018游客@Ru_Evan #54910
不用加COOKIE参数吗?
吃饺子不沾醋游客感谢未曾先生今天试了一下批量下载,比之前单个下载方便多了,谢谢!谢谢!
光游客未曾兄早上好!包含分页json/dzi/XML参数的urls.txt文件里面的内容怎么能弄到呀?例如下面的从那里可以看到或列出来?
吃饺子不沾醋游客webarchives.tnm.jp/dlib/...855/tiles/ L0252591/ImageProperties.xml
看下一张图片如果是绿色部分的加一就可以用
ok.daoing.com/url/ 批量生成一本的链接
xyz游客研究了一晚上了,终于到了这一步,可是所有的小图片在下载的过程中,都出现这个黄色的内容,还是失败了。还请老师指点一下@未曾
未曾管理员@xyz #69991
关于北京故宫博物院的获取,建议看看这个帖子
www.shuge.org/meet/...post-16727
xyz游客@未曾 #69993
感谢未曾老师深夜指点,我再研究研究
xyz游客@未曾 #69993
终于成功了,折腾了4、5个小时,真是不知道怎么失败的,也不知道最后是怎么弄好的。。。
修隐者游客求教未曾先生为啥我这批量下载显示这个啊,操作方法是:打开运行-cmd-把dezoomify-rs 拖进去就行嘛?还是需要更改您发的那个bat里的内容?
未曾管理员@修隐者 #70442
脚本说明
0,首先要创建一个包含分页json/dzi/XML参数的urls.txt文件
1,为了方便归类多种资源,打开脚本会提示输入需要保存的文件夹名(输入后会自动创建,不输入会 默认创建并保存到download目录)
2,需要配合dezoomify-rs使用
3,dezoomify-rs 的相关参数可自行补充
4,如果需要任务延迟可在timeout /t 后面带上秒数,例如10s timeout /t 10
5,如果遇到红字I/O错误,说明文件名占用了(已经存在了)
6,在系统盘以外的盘使用
脚本(downall.bat)下载地址:
yun.daoon.com/wl/?i...e=download
tigershuai游客事实上bookget也能达到此脚本的功能,至于使用方法大同小异。
修隐者游客
xiaopengyou游客
修隐者游客@xiaopengyou #70534
感谢,我再研究研究看
嘿岛游客@修隐者 #70522
最近刚学用bookget,比如两册书都是一百页,确实同名会直接覆盖,所以差不多第一册下载个几十页了就把图片移出那个目录就不会被覆盖了。
光游客
dxx游客运行楼主脚本,输入文件夹,出现下面情况,如何解决?dezoomify-rs什么问题?
Download folder: H:\绘画\文件夹名不能有空格\
'dezoomify-rs' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
未曾管理员@dxx #83530
这个目录不是指定一个目录,而是在当前目录下创建一个目录,默认是download
dxx游客原来是要把urls.txt,dezoomify-rs,bat三個東西,放在C盤以外的同一個新設文件夾
那么问题又来了,我只能用洋葱浏览器链接国际互联网,在浏览器上用dezoomify下载的,电脑不是全局链接国际互联网。
但脚本不是通过浏览器连网的,该如何连到国际互联网?只能电脑全局连网吗?
有没有方法能利用浏览器上的dezoomify网址来批量下载?
dxx游客运行脚本,设定默认文件夹。因为不是全局连网,脚本出现下面结果
- iiif: Unable to download required data: network error: error sending request for url (iiifod.npm.gov.tw/iiif/.../info.json ): error trying to connect: dns error: 这是在主机名解析时通常出现的暂时错误,它 意味着本地服务器没有从权威服务器上收到响应。 (os error 11002)
未曾管理员@dxx #83535
CMD模式也是可以走代理的
如果你知道你代理软件的本地端口
可以添加以下两行到脚本前面(1080是根据你代理软件的本地端口填写)
set http_proxy=http://127.0.0.1:1080 set https_proxy=http://127.0.0.1:1080
大致脚本
@echo off setlocal enabledelayedexpansion set http_proxy=http://127.0.0.1:1080 set https_proxy=http://127.0.0.1:1080 set /a a=1 set /p downdir=Download folder: if "%downdir%"=="" set downdir="download" if not exist %downdir% md %downdir% for /f "delims=" %%i in (urls.txt) do ( dezoomify-rs -l --accept-invalid-certs -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36" %%i %downdir%/!a!.jpg set /a a+=1 timeout /t 0 ) pause
dxx游客某浏览器自带的连网,连上后,只能浏览器自己用,不知道在哪找端口
dxx游客@未曾 #83538
“CMD模式也是可以走代理的”
在cmd命令行里粘贴入批处理代码,回车,提醒如下,我不知道如何设定保存文件夹,是把%downdir%修改为绝对文件夹地址吗?
'"%downdir%"' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
for /f "delims=" %%i in (urls.txt) do (
此时不应有 %%i。
dezoomify-rs -l --accept-invalid-certs -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36" %%i %downdir%/!a!.png
'dezoomify-rs' 不是内部或外部命令,也不是可运行的程序
或批处理文件。- 作者帖子