找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24118|回复: 3

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

[复制链接]
发表于 2018-11-6 00:16:16 | 显示全部楼层 |阅读模式
请教诸位大佬:
我用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
发表于 2018-11-6 10:25:20 | 显示全部楼层
连续下载一定数量后要停一下,过2-3秒就可以了。再重复。
为什么要用 wget 。PS不更方便。
 楼主| 发表于 2018-11-6 13:02:00 | 显示全部楼层
回复 2# xczxczxcz
PS不熟悉。感觉wget更简单。
就这个情况,宗PS怎么写?
发表于 2018-11-6 15:23:25 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
zhanglei1371 + 1 感谢感谢!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 20:51 , Processed in 0.016461 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表