标题: [网络连接] wget下载网页丢失链接的问题 [打印本页]
作者: zhanglei1371 时间: 2018-11-6 00:16 标题: 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
作者: xczxczxcz 时间: 2018-11-6 10:25
连续下载一定数量后要停一下,过2-3秒就可以了。再重复。
为什么要用 wget 。PS不更方便。
作者: zhanglei1371 时间: 2018-11-6 13:02
回复 2# xczxczxcz
PS不熟悉。感觉wget更简单。
就这个情况,宗PS怎么写?
作者: xczxczxcz 时间: 2018-11-6 15:23
本帖最后由 xczxczxcz 于 2018-11-7 07:06 编辑
回复 3# zhanglei1371
【发现在不同时间段,文件格式会变,当变成M4A格式后,文件名的判断会变成文件名的前一格,特修改一下,如有其它问题可以说一下,因这不是俺的菜,不会对它长期测试】
加了点美化,使下载过程看得更清楚。只针对 ‘https://ting55.com/book/10733’这个有声小说。其它类似。若下载显大片红色错误。则关掉下载。网站已暂进屏了下载。404。过段时间再下。同时程序也会停止。下载的起始页和终止页自行修正。下载的文件保存在脚本目录的《音频》文件中。
单线程下载。多线程可能会很快被杀死。下载没添加进度条。若停电或其它意外退出,会下载文件产生许多没后缀的文件。是没有完成的缓存文件。删除即可。其实加个后缀就可用。
个人认为下载 只需 PS Aria2c IDM 即可。都支持命令行。
凑合写了个,能正常下载。但不保证 win7 能正常用。win8以上没问题。据说有写给xp的POWERSHELL。- # 下载所有指定的网页找出音频文件,为防下载过快,采用单线程下载。
- mkdir "$env:temp\ting55" -force
- $env:Ting55="$env:temp\ting55"
- mkdir ".\音频" -force
-
- ni "$env:Ting55\Down.txt" -type file -force
- $url="https://ting55.com/book/10733-"
- $Save="$env:Ting55\web.txt"
- $client=new-object System.Net.WebClient
- for($i=1; $i -le 935; $i++){ #该循环可写成函数块,以便其它页面调用
- $fullurl=$url+$i
- $Link=$null
- Write-host "处理 第 $i 章 $fullurl" -fore darkcyan
- $Client.DownloadFile("$fullurl","$Save")
- ((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
- $Link=((gc "$env:Ting55\ani.txt") -match "^@@@").replace('@@@','http')
- if($Link -eq $null){
- Write-host "第 $i 页下载停止" -fore red
- pause
- }
- $NameRef=$Link.split("/")[-1].trim() #完整文件名和后缀
- $str=$NameRef.split("?")[0].trim()
- if($str -eq $null){
- $ext=$NameRef.split(".")[-1].trim()
- $http=$Link
- } else {
- $ext=$str.split(".")[-1].trim()
- $http=$Link.split("?")[0].trim()
- }
- $Name=[string]$i + "." + $ext
- Write-Host "$http" -fore DarkGreen
- Invoke-WebRequest -Uri "$Link" -Outfile ".\音频\$Name"
- }
- ri "$env:temp\ting55" -Recurse -force
- pause
复制代码
=============
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |