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

[文本处理] [已解决]批处理如何实现下载三七中文网某个指定小说的最新章节?

[复制链接]
发表于 2016-11-29 21:22:32 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-11-30 18:51 编辑

我是新手,前几天刚接触wget和HtoX32c,于是想写一个自动下载小说最新章节的批处理
思路是用wget下载某个网页的源码,从中找出最新章节的地址,再用wget下载,最后HtoX32c转换

比如说看《大主宰》,可以用wget下载这个网页的源码http://www.37zw.com/0/330/,这个网址是不变的,保存为1.html
1.html中的一行:<meta property="og:novel:latest_chapter_url" content="http://www.37zw.com/0/330/4329753.html"/>,其中的http.....43297553.html就是最新章节的地址
其他方面都成功了,但是不知道怎么获取这个最新章节的地址,1.html中不止这一个链接地址
或者有更好的方法也请教教我

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2016-11-29 21:46:59 | 显示全部楼层
findstr "latest_chapter_url" "1.html"
再用for提取
发表于 2016-11-29 21:53:57 | 显示全部楼层
回复 1# Blitz


    把代码发上来,让坛友们帮你看看怎样添加,在那个地方添加,才能解决你的这个问题。
 楼主| 发表于 2016-11-29 22:25:54 | 显示全部楼层
本帖最后由 Blitz 于 2016-11-29 22:28 编辑

回复 2# pcl_test


    谢谢,但是还是不太懂。。。能详细点吗
 楼主| 发表于 2016-11-29 22:27:29 | 显示全部楼层
本帖最后由 Blitz 于 2016-11-29 22:30 编辑

回复 3# CommandBatCmd
  1. @echo off
  2. set /p as=请输入网址:
  3. cd C:\Users\Administrator\Desktop
  4. wget -O 1.txt %as%
  5. HtoX32c /IP 1.txt>2.txt
  6. del 1.txt

  7. setlocal Enabledelayedexpansion  //从这里往下是从网上找的,作用是取章节的标题作为文件名
  8. call :G_getrowstr 18 2.txt kk
  9. ren 2.txt "%kk%.txt"
  10. exit
  11. :G_getrowstr
  12. set %3=
  13. set /A G_skiprows=%1-1
  14. if "%G_skiprows%"=="0" goto :G_getrowstrz
  15. for /f "skip=%G_skiprows% delims=" %%i in ('findstr /n .* %2') do (  
  16. for /f "tokens=2* delims=:" %%j in ("%%i") do set %3=%%j
  17. ::if "%%i"=="%1:" set %3=空白行
  18. goto :eof
  19. )
  20. :G_getrowstrz
  21. for /f "delims=" %%i in ('findstr /n .* %2') do (
  22. for /f "tokens=2* delims=:" %%j in ("%%i") do set %3=%%j
  23. goto :eof
  24. )
复制代码
这就是要输入最新章节的地址才行
发表于 2016-11-29 22:32:21 | 显示全部楼层
好在meta标签比较靠前,要不还真能把for累死~!

  1. @echo off&for /f tokens^=1-4^ delims^=^" %%a in (1.html) do (if [%%b]==[og:novel:latest_chapter_url] (set/p=%%d&exit))
复制代码

评分

参与人数 2技术 +2 收起 理由
小小菜鸟 + 1 乐于助人
Blitz + 1 谢谢

查看全部评分

 楼主| 发表于 2016-11-29 22:48:41 | 显示全部楼层
回复 6# happy886rr


    试了,成功了,非常感谢!!!
发表于 2016-11-29 22:49:43 | 显示全部楼层
回复 7# Blitz
你的代码太臃肿,连下载转码其实3行就能搞定。
 楼主| 发表于 2016-11-29 22:52:13 | 显示全部楼层
回复 8# happy886rr


    其实主要的代码就是这几句
  1. cd C:\Users\Administrator\Desktop
  2. wget -O 1.txt %as%
  3. HtoX32c /IP 1.txt>2.txt
  4. del 1.txt
复制代码
后面的是从网上找的,获取文件的第18行重命名文件
请问该怎么改
发表于 2016-11-29 23:03:40 | 显示全部楼层
本帖最后由 happy886rr 于 2016-11-29 23:05 编辑

回复 9# Blitz
就我那条,改改中括号里的内容,连重命名都能一行实现,那是批处理实现的选择器,几乎可以筛选绝大多数网页内容。
 楼主| 发表于 2016-11-29 23:10:50 | 显示全部楼层
回复 10# happy886rr


    哦哦,谢谢
发表于 2016-11-30 18:49:02 | 显示全部楼层
  1. mshta http://bathome.net/s/hta/index.html "var url=web('http://www.37zw.com/0/330/').match(/<meta.+?latest_chapter_url.+?""([^""]+)/)[1];web(url).match(/<div id=""content"">[\s\S]+?<\/div>/)[0].replace(/<br ?\/>/g,'\r\n').replace(/&nbsp;/g,' ').replace(/<[^<]*?>/g,'')"
  2. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Blitz + 1

查看全部评分

 楼主| 发表于 2016-12-1 00:51:21 | 显示全部楼层
本帖最后由 Blitz 于 2016-12-1 00:59 编辑

回复 12# pcl_test

谢谢,代码很简短,而且效果也很好,但是弹出的消息框好像不能下滑,看不了下面的内容
发表于 2016-12-1 04:23:07 | 显示全部楼层
回复 13# Blitz


    重定向到文本即可
 楼主| 发表于 2016-12-1 18:51:03 | 显示全部楼层
回复 14# pcl_test


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

本版积分规则

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

GMT+8, 2026-3-17 08:49 , Processed in 0.031889 second(s), 13 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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