[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
我用楼主的批处理无法下载,调试了一下发现在几个地方用上指定路径就OK了。我是一个菜鸟,说得不一定正确请指教:
  1. @echo on
  2. setlocal enabledelayedexpansion
  3. :: 获取含有具体网页下载链接清单的网页
  4. title 获取含有具体下载链接的网页
  5. md index 2>nul
  6. curl -o index\#1.html "http://www.51voa.com/Go_English_[1-2].html"
  7. htox32c /ip /o0 /u3 index\*.html
  8. wfr index\*.txt -any -encin:utf-8 -encout:gbk -force
  9. :: 提取具体网页的下载链接并下载之
  10. cls
  11. title 下载每一个教程的网页文件
  12. md content 2>nul
  13. pushd index
  14. for %%i in (*.txt) do (
  15.     for /f "skip=76 tokens=*" %%j in (%%i) do (
  16.         set "UrlHtml=%%j"
  17.         if "!UrlHtml:~0,23!"=="</Voa_English_Learning/" (
  18.             for /f "tokens=2*" %%k in ("!NameHtml!") do (
  19.                 set "NameHtml=%%l"
  20.                 set "NameHtml=!NameHtml: =!"
  21.                 set "NameHtml=!NameHtml::=:!"
  22.                 set "UrlHtml=http://www.51voa.com/!UrlHtml:~1,-1!"
  23.                 title 正在下载 %%k_!NameHtml! 的网页数据
  24.                 ..\curl -o "..\content\%%k_!NameHtml!.html" "!UrlHtml!"
  25.             )
  26.         )
  27.         set "NameHtml=%%j"
  28.     )
  29. )
  30. popd
  31. :: 下载每一课程中的mp3文件,并提取所有课程中的文字内容分别保存
  32. cls
  33. title 网页转文本
  34. md result 2>nul
  35. pushd content
  36. ..\htox32c /ip /o0 /u3 *.html
  37. ..\wfr *.txt -any -encin:utf-8 -encout:gbk -force
  38. cls
  39. for %%i in (*.txt) do (
  40.     for /f "tokens=*" %%j in ('findstr /i "path\.asp\?url=.*\.mp3" "%%i"') do (
  41.         set "UrlMp3=%%j"
  42.         set "UrlMp3=http://archive.51voa.com/!UrlMp3:~16,-1!"
  43.         title 正在下载 !UrlMp3!
  44.         for /f "delims=_" %%k in ("!UrlMp3!") do set "NameMp3=%%~nk"
  45.         call :DownMp3 "!NameMp3!" "!UrlMp3!"
  46.     )
  47.     title 提取 %%i 的内容
  48.     set over=
  49.     (echo %%~ni&echo.&echo.
  50.     for /f "skip=76 tokens=*" %%j in (%%i) do (
  51.         if "%%j"=="这次的美语三级跳就播送到这里。"  set over=yes
  52.         if "%%j"=="Related Articles"  set over=yes
  53.         if not defined over echo %%j&echo.
  54.     ))>..\result\%%i
  55. )
  56. popd
  57. exit
  58. :DownMp3
  59. ..\curl --retry 3 --retry-delay 2 -o "..\result\%~1.mp3" %2
  60. if not exist "..\result\%~1.mp3" goto DownMp3
  61. goto :eof
复制代码
1

评分人数

    • namejm: 感谢指出疏漏之处。技术 + 1

TOP

返回列表