[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] wget下载网页丢失链接的问题

请教诸位大佬:
我用wget批量下载网页时,使用命令:wget -i xs.txt;
xs.txt内容:
https://ting55.com/book/10733-139
.........
https://ting55.com/book/10733-935
但是最后发现,总是会有近1/3的下载后的网页里面的音频地址丢失。

(function(){var a={m4a:"http://audio.xmcdn.com/group13/M08/9A/DA/wKgDXVZDM8mQg_WwAOeeU6xz-_Y966.m4a"}
最后下载出来成了:
(function(){var a={};ting55_pla...
也就是大括号里的地址丢失。
不知是什么原因,已经测试多次了。希望大佬们能指点下,不胜感激。
wget版本:1.19.1

连续下载一定数量后要停一下,过2-3秒就可以了。再重复。
为什么要用 wget 。PS不更方便。

TOP

回复 2# xczxczxcz
PS不熟悉。感觉wget更简单。
就这个情况,宗PS怎么写?

TOP

本帖最后由 xczxczxcz 于 2018-11-7 07:06 编辑

回复 3# zhanglei1371
【发现在不同时间段,文件格式会变,当变成M4A格式后,文件名的判断会变成文件名的前一格,特修改一下,如有其它问题可以说一下,因这不是俺的菜,不会对它长期测试】
加了点美化,使下载过程看得更清楚。只针对 ‘https://ting55.com/book/10733’这个有声小说。其它类似。若下载显大片红色错误。则关掉下载。网站已暂进屏了下载。404。过段时间再下。同时程序也会停止。下载的起始页和终止页自行修正。下载的文件保存在脚本目录的《音频》文件中。

单线程下载。多线程可能会很快被杀死。下载没添加进度条。若停电或其它意外退出,会下载文件产生许多没后缀的文件。是没有完成的缓存文件。删除即可。其实加个后缀就可用。
个人认为下载 只需 PS  Aria2c IDM 即可。都支持命令行。
凑合写了个,能正常下载。但不保证 win7 能正常用。win8以上没问题。据说有写给xp的POWERSHELL。
  1. # 下载所有指定的网页找出音频文件,为防下载过快,采用单线程下载。
  2. mkdir "$env:temp\ting55" -force
  3. $env:Ting55="$env:temp\ting55"
  4. mkdir ".\音频" -force
  5. ni "$env:Ting55\Down.txt" -type file -force
  6. $url="https://ting55.com/book/10733-"
  7. $Save="$env:Ting55\web.txt"
  8. $client=new-object System.Net.WebClient
  9. for($i=1; $i -le 935; $i++){ #该循环可写成函数块,以便其它页面调用
  10. $fullurl=$url+$i
  11. $Link=$null
  12. Write-host "处理 第 $i 章  $fullurl" -fore darkcyan
  13. $Client.DownloadFile("$fullurl","$Save")
  14. ((gc "$env:Ting55\web.txt" -enc utf8) -replace ("var a={[\w]{1,}:`"http","`r`n@@@") -replace ("`"};ting55_play","`r`n")) |sc "$env:Ting55\ani.txt" -enc Default
  15. $Link=((gc "$env:Ting55\ani.txt") -match "^@@@").replace('@@@','http')
  16. if($Link -eq $null){
  17. Write-host "第 $i 页下载停止" -fore red
  18. pause
  19. }
  20. $NameRef=$Link.split("/")[-1].trim() #完整文件名和后缀
  21. $str=$NameRef.split("?")[0].trim()
  22. if($str -eq $null){
  23. $ext=$NameRef.split(".")[-1].trim()
  24. $http=$Link
  25. } else {
  26. $ext=$str.split(".")[-1].trim()
  27. $http=$Link.split("?")[0].trim()
  28. }
  29. $Name=[string]$i + "." + $ext
  30. Write-Host "$http" -fore DarkGreen
  31. Invoke-WebRequest -Uri "$Link" -Outfile ".\音频\$Name"
  32. }
  33. ri "$env:temp\ting55" -Recurse -force
  34. pause
复制代码
=============
1

评分人数

TOP

返回列表