![]() 超级会员
|
春节马上就要到了,貌似只剩下两天时间,在网上如何消遣?down一些txt小说回去慢慢欣赏,是件多么惬意的事情啊。namejm最近在网上转悠了好一阵子,发现一个非常干净的txt小说网站,名叫易读网,抓取txt小说十分方便。狂喜之余,做了个下载易读网txt小说的脚本,以方便广大书虫。
如有什么bug,或有什么好的建议,望各位及时反馈。 由于精力有限,后续更新将只在本人论坛发表,若无重大错误,本帖将不同步更新。最新版本请关注这个帖子:http://bbs.bathome.net/thread-7166-1-1.html 20100406:发现易读网的网址由 http://www.yilook.com/ 改成了 http://www.yi-look.com/,请以前下载过该代码的朋友修改一下代码,以适应这种变动,否则,将下载不到任何小说:在代码打头几行处,搜索 set www=http://www.yilook.com,把它改为 set www=http://www.yi-look.com 即可。以下代码已经做了改动。 代码:
@echo off :: 功能: :: 按照多种方式下载易读网上的txt小说 :: 实现过程: :: 1、下载指定的某篇小说: :: 首先下载小说首页,通过首页提取出每一章节的下载地址,然后下载每一章节的html文件,转为txt文本,最后按章节顺序提取正文内容,拼合即可; :: 2、根据配置文件下载指定的小说: :: 首先,需要在当前脚本所在的文件夹下存在"要下载的小说列表.txt"文件,文件内容按照 "《小说名》"|小说URL 的格式, :: 一行一条记录加以保存,前后不可有多余的字符;然后,把这个文件复制到 %destination%\tmp\要下载的小说列表\ 目录下, :: 覆盖同名文件,用批处理读取其中的配置,接下来的步骤同1; :: 3、下载指定页码上的所有小说: :: 首先下载指定页面,把其中各篇小说的首页地址提取出来,接下来的步骤同1; :: 4、下载指定页码范围内的所有小说: :: 首先下载指定页码范围内的所有页面,接下来的步骤同1; :: 5、下载全站的所有小说: :: 首先下载全站所有页码上的所有页面,接下来的步骤同1; mode con lines=26 :: 20100406发现易读网域名发生了变化,注释掉了原来的网址,启用新网址 ::set www=http://www.yilook.com set www=http://www.yi-look.com set TT=易读网txt小说下载器 set destination=易读txt小说 md "%destination%\tmp\要下载的小说列表\html" 2>nul pushd "%destination%\tmp\要下载的小说列表\html" :Main cls del /a /f /q *.* 2>nul del /a /f /q ..\txt\*.* 2>nul title %TT% echo.&echo. echo 本程序可以按照以下方式下载易读网上的txt小说 echo. echo 易读网首页:http://www.yilook.com echo. echo 1、下载指定的某篇小说 echo. echo 2、根据配置文件下载指定的小说 echo. echo 3、下载指定页码上的所有小说 echo. echo 4、下载指定页码范围内的所有小说 echo. echo 5、下载全站的所有小说 echo. echo X、退出 set choice= call :line set /p choice= 请输入指定功能代码(1/2/3/4/5/X): if not defined choice goto Main if /i "%choice:~0,1%"=="X" exit set "choice=%choice:~0,1%" if "%choice%"=="1" goto DownGivenNovel if "%choice%"=="2" goto DownGivenNovels if "%choice%"=="3" goto DownGivenPage if "%choice%"=="4" goto DownGivenPages if "%choice%"=="5" goto DownAllPages goto Main :DownGivenNovel cls title %TT%-指定网址 echo.&echo. echo 请在易读网中找到某篇小说的URL,复制后粘贴到本窗口中使用。 echo. echo 比如,《汉朝的那些事儿》,其URL地址为: echo. echo http://www.yilook.com/art_7200_8093.html echo. echo 把以上URL粘贴到本窗口即可下载《汉朝那些事儿》 echo. echo 粘贴方法:鼠标点击右键,然后粘贴,不能使用快捷键Ctrl+V call :line echo 请在下面输入小说的URL地址: echo. set URL= set /p URL= if not defined URL goto DownGivenNovel if /i "%URL:~0,1%"=="X" exit if /i "%URL:~0,1%"=="M" goto Main curl -O %URL% htox32c /IP /O0 *.html for /f "tokens=3" %%i in ('findstr "TITLE" "*.txt"') do echo "%%i"^|%URL%>..\要下载的小说列表.txt goto DownNovel :DownGivenNovels cls title %TT%-配置下载文件清单 echo.&echo. echo 请确认当前目录下存在"要下载的小说列表.txt"文件 echo. echo 并且该文件中的内容为 "《小说名》"^|小说目录页URL 的格式 echo. echo 一行一条记录,前后不可有多余字符。如: echo. echo "《寻人启事》"^|http://www.yilook.com/art_7238_6170.html echo. echo 若不满足如上条件,请自行配置好后方可使用本功能 call :line echo. set next= set /p next= 要继续下一步吗?(Y/N): if not exist ..\..\..\..\要下载的小说列表.txt goto DownGivenNovels if not defined next goto DownGivenNovels set "next=%next:~0,1%" if /i "%next%"=="X" exit if /i "%next%"=="M" goto Main if /i "%next%"=="Y" ( copy /y ..\..\..\..\要下载的小说列表.txt ..\ goto DownNovel ) goto DownGivenNovels :DownGivenPage cls title %TT%-指定页码 echo.&echo.&echo.&echo. echo 您可以指定某一页码,本脚本将下载易读网上这一页内 echo. echo 列出的所有小说 echo. echo 如:输入3,将下载这一页面所列出的所有小说: echo. echo http://www.yilook.com/artlist_3.html call :line set page= set /p page= 请输入指定页码: if not defined page goto DownGivenPage if /i "%page:~0,1%"=="X" exit if /i "%page:~0,1%"=="M" goto Main curl -O %www%/artlist_%page%.html goto HTMLtoTXT :DownGivenPages cls title %TT%-指定页码范围 echo.&echo. echo 您可以指定某一页码范围,本脚本将下载易读网上这些页内 echo. echo 列出的所有小说 echo. echo 注意:起止页码必须用半角状态下的短横杠连接。 echo. echo 如:输入 3-5,将下载易读网上下列页面内列出的所有小说: echo. echo http://www.yilook.com/artlist_3.html echo http://www.yilook.com/artlist_4.html echo http://www.yilook.com/artlist_5.html call :line set pages= set /p pages= 请输入指定页码的范围(如3-5): if not defined pages goto DownGivenPages if /i "%pages%"=="X" exit if /i "%pages%"=="M" goto Main curl -O "%www%/artlist_[%pages%].html" goto HTMLtoTXT :DownAllPages cls title %TT%-下载全站小说 curl -O %www%/artlist_1.html htox32c /IP /O0 /U1+4 artlist_1.html cls for /f "tokens=6" %%i in ('findstr /i "第.*页" artlist_1.txt') do ( curl -O "%www%/artlist_[2-%%i].html" ) :HTMLtoTXT cls title %TT%-网页转换为txt htox32c /IP /O0 /U1+4 *.html md ..\txt 2>nul del /a /f /q ..\txt\*.* move *.txt ..\txt>nul :PickupList cls echo.&echo 正在生成要下载的小说列表,请稍候... cd.>..\要下载的小说列表.txt for %%i in (..\txt\*.txt) do ( title %TT%-生成下载列表_%%~nxi for /f "delims=<'> tokens=1,2" %%j in ('findstr /i "《.*》" "%%i"') do ( echo "%%j"^|%www%/%%k>>..\要下载的小说列表.txt ) ) :DownNovel cls title %TT%-下载小说 echo.&echo. echo 正在下载小说,请稍候... md ..\..\..\整理结果 2>nul del /a /f /q ..\..\..\整理结果\*.* rd /q /s ..\..\已下载小说的原始文档 md ..\..\已下载小说的原始文档 for /f "delims=| tokens=1,2" %%i in (..\要下载的小说列表.txt) do ( curl --create-dirs -o "..\..\已下载小说的原始文档\%%~i\index.html" "%%~j" htox32c /IP /O0 /U1+4 "..\..\已下载小说的原始文档\%%~i\index.html" cls set lastchapter=1 for /f "delims=' tokens=1,2" %%x in ('findstr /i "第.*节" "..\..\已下载小说的原始文档\%%~i\index.txt"') do ( call :DownHTML "%%~i" "%%~x" "%%~y" ) pushd "..\..\已下载小说的原始文档\%%~i\html" htox32c /IP /O0 *.html popd md "..\..\已下载小说的原始文档\%%~i\txt" 2>nul move "..\..\已下载小说的原始文档\%%~i\html\*.txt" "..\..\已下载小说的原始文档\%%~i\txt" call :PickupTXT "%%~i" move "..\..\已下载小说的原始文档\%%~i\%%i.txt" ..\..\..\整理结果 ) title %TT%-整理完毕 echo 整理完毕 pause exit :DownHTML :: 下载小说各章节页面文件 set "chapter=%~2" set "chapter=%chapter:*第=%" set "chapter=%chapter:~0,-2%" title %TT%-正在下载 "%~1_第 %chapter% 节" if %lastchapter% lss %chapter% set lastchapter=%chapter% curl --create-dirs -o "..\..\已下载小说的原始文档\%~1\html\%chapter%.html" "%www%/%~3" goto :eof :PickupTXT :: 按先后顺序提取各章节页面正文并合并之 cls title %TT%-正在提取 %1 echo.&echo 正在合并各章节,请稍候... cd.>"..\..\已下载小说的原始文档\%~1\%~1.txt" for /l %%i in (1,1,%lastchapter%) do ( title %TT%-正在处理 "%~1\%%i.html" findstr /ibc:" " "..\..\已下载小说的原始文档\%~1\txt\%%i.txt">>"..\..\已下载小说的原始文档\%~1\%~1.txt" echo.>>"..\..\已下载小说的原始文档\%~1\%~1.txt" ) goto :eof :line echo. echo ________________________________________________________________________________ if defined choice ( echo 退出 X 返回主界面 M ) echo.&echo. goto :eof 1、Curl.exe:[url]http://curl.haxx.se/[url](官网)或 http://bbs.bathome.net/thread-1761-1-1.html 2、HtoX32c.exe:http://win32lab.com/(官网,日文)或http://b...助信息) 注意:curl.exe需要配合libssl32.dll和libeay32.dll方可使用,若当前机器%windir%中没有这两个dll,请下载本楼中的额外附件,把其中的两个dll放到%windir%目录下或curl.exe同一目录下使用。 此帖于 2010-04-26 11:24:47 被 namejm 编辑. . 原因: 易读网网址发生了变化,不修改代码将下载不到任何小说 |
||
![]() TotalCommder、EveryThing、batch、AutoHotKey、EverEdit 精通Word、Excel、PPT的安装与卸载 熟练掌握VB、C++、SQL的拼读与缩写 |
![]() 高级会员
|
谢谢
一直用 小说下载阅读器 这个工具来下载易读 有了这个就方便多了 按照我的需求稍改了下 对按照页码和页码范围的改成了 仅限【全集】里面的文章 代码:
@echo off :: 功能: :: 按照多种方式下载易读网上的txt小说 :: 实现过程: :: 1、下载指定的某篇小说: :: 首先下载小说首页,通过首页提取出每一章节的下载地址,然后下载每一章节的html文件,转为txt文本,最后按章节顺序提取正文内容,拼合即可; :: 2、根据配置文件下载指定的小说: :: 首先,需要在当前脚本所在的文件夹下存在"要下载的小说列表.txt"文件,文件内容按照 "《小说名》"|小说URL 的格式, :: 一行一条记录加以保存,前后不可有多余的字符;然后,把这个文件复制到 %destination%\tmp\要下载的小说列表\ 目录下, :: 覆盖同名文件,用批处理读取其中的配置,接下来的步骤同1; :: 3、下载指定页码上的所有小说: :: 首先下载指定页面,把其中各篇小说的首页地址提取出来,接下来的步骤同1; :: 4、下载指定页码范围内的所有小说: :: 首先下载指定页码范围内的所有页面,接下来的步骤同1; :: 5、下载全站的所有小说: :: 首先下载全站所有页码上的所有页面,接下来的步骤同1; mode con lines=26 set www=http://www.yilook.com set TT=易读网txt小说下载器 set destination=易读txt小说 md "%destination%\tmp\要下载的小说列表\html" 2>nul pushd "%destination%\tmp\要下载的小说列表\html" :Main cls del /a /f /q *.* 2>nul del /a /f /q ..\txt\*.* 2>nul title %TT% echo.&echo. echo 本程序可以按照以下方式下载易读网上的txt小说 echo. echo 易读网首页:http://www.yilook.com echo. echo 1、下载指定的某篇小说 echo. echo 2、根据配置文件下载指定的小说 echo. echo 3、下载【全集】指定页码上的所有小说 echo. echo 4、下载【全集】指定页码范围内的所有小说 echo. echo 5、下载全站的所有小说 echo. echo X、退出 set choice= call :line set /p choice= 请输入指定功能代码(1/2/3/4/5/X): if not defined choice goto Main if /i "%choice:~0,1%"=="X" exit set "choice=%choice:~0,1%" if "%choice%"=="1" goto DownGivenNovel if "%choice%"=="2" goto DownGivenNovels if "%choice%"=="3" goto DownGivenPage if "%choice%"=="4" goto DownGivenPages if "%choice%"=="5" goto DownAllPages goto Main :DownGivenNovel cls title %TT%-指定网址 echo.&echo. echo 请在易读网中找到某篇小说的URL,复制后粘贴到本窗口中使用。 echo. echo 比如,《汉朝的那些事儿》,其URL地址为: echo. echo http://www.yilook.com/art_7200_8093.html echo. echo 把以上URL粘贴到本窗口即可下载《汉朝那些事儿》 echo. echo 粘贴方法:鼠标点击右键,然后粘贴,不能使用快捷键Ctrl+V call :line echo 请在下面输入小说的URL地址: echo. set URL= set /p URL= if not defined URL goto DownGivenNovel if /i "%URL:~0,1%"=="X" exit if /i "%URL:~0,1%"=="M" goto Main curl -O %URL% htox32c /IP /O0 *.html for /f "tokens=3" %%i in ('findstr "TITLE" "*.txt"') do echo "%%i"^|%URL%>..\要下载的小说列表.txt goto DownNovel :DownGivenNovels cls title %TT%-配置下载文件清单 echo.&echo. echo 请确认当前目录下存在"要下载的小说列表.txt"文件 echo. echo 并且该文件中的内容为 "《小说名》"^|小说目录页URL 的格式 echo. echo 一行一条记录,前后不可有多余字符。如: echo. echo "《寻人启事》"^|http://www.yilook.com/art_7238_6170.html echo. echo 若不满足如上条件,请自行配置好后方可使用本功能 call :line echo. set next= set /p next= 要继续下一步吗?(Y/N): if not exist ..\..\..\..\要下载的小说列表.txt goto DownGivenNovels if not defined next goto DownGivenNovels set "next=%next:~0,1%" if /i "%next%"=="X" exit if /i "%next%"=="M" goto Main if /i "%next%"=="Y" ( copy /y ..\..\..\..\要下载的小说列表.txt ..\ goto DownNovel ) goto DownGivenNovels :DownGivenPage cls title %TT%-指定页码 echo.&echo.&echo.&echo. echo 您可以指定【全集】某一页码,本脚本将下载易读网上这一页内 echo. echo 列出的所有小说 echo. echo 如:输入3,将下载【全集】这一页面所列出的所有小说: echo. echo http://www.yilook.com/artc_0_3.html call :line set page= set /p page= 请输入指定页码: if not defined page goto DownGivenPage if /i "%page:~0,1%"=="X" exit if /i "%page:~0,1%"=="M" goto Main curl -O %www%/artc_0_%page%.html goto HTMLtoTXT :DownGivenPages cls title %TT%-指定页码范围 echo.&echo. echo 您可以指定【全集】某一页码范围,本脚本将下载易读网上这些页内 echo. echo 列出的所有小说 echo. echo 注意:起止页码必须用半角状态下的短横杠连接。 echo. echo 如:输入 3-5,将下载易读网上【全集】下列页面内列出的所有小说: echo. echo http://www.yilook.com/artc_0_3.html echo http://www.yilook.com/artc_0_4.html echo http://www.yilook.com/artc_0_5.html call :line set pages= set /p pages= 请输入指定页码的范围(如3-5): if not defined pages goto DownGivenPages if /i "%pages%"=="X" exit if /i "%pages%"=="M" goto Main curl -O "%www%/artc_0_[%pages%].html" goto HTMLtoTXT :DownAllPages cls title %TT%-下载全站小说 curl -O %www%/artlist_1.html htox32c /IP /O0 /U1+4 artlist_1.html cls for /f "tokens=6" %%i in ('findstr /i "第.*页" artlist_1.txt') do ( curl -O "%www%/artlist_[2-%%i].html" ) :HTMLtoTXT cls title %TT%-网页转换为txt htox32c /IP /O0 /U1+4 *.html md ..\txt 2>nul del /a /f /q ..\txt\*.* move *.txt ..\txt>nul :PickupList cls echo.&echo 正在生成要下载的小说列表,请稍候... cd.>..\要下载的小说列表.txt for %%i in (..\txt\*.txt) do ( title %TT%-生成下载列表_%%~nxi for /f "delims=<'> tokens=1,2" %%j in ('findstr /i "《.*》" "%%i"') do ( echo "%%j"^|%www%/%%k>>..\要下载的小说列表.txt ) ) :DownNovel cls title %TT%-下载小说 echo.&echo. echo 正在下载小说,请稍候... md ..\..\..\整理结果 2>nul del /a /f /q ..\..\..\整理结果\*.* rd /q /s ..\..\已下载小说的原始文档 md ..\..\已下载小说的原始文档 for /f "delims=| tokens=1,2" %%i in (..\要下载的小说列表.txt) do ( curl --create-dirs -o "..\..\已下载小说的原始文档\%%~i\index.html" "%%~j" htox32c /IP /O0 /U1+4 "..\..\已下载小说的原始文档\%%~i\index.html" cls set lastchapter=1 for /f "delims=' tokens=1,2" %%x in ('findstr /i "第.*节" "..\..\已下载小说的原始文档\%%~i\index.txt"') do ( call :DownHTML "%%~i" "%%~x" "%%~y" ) pushd "..\..\已下载小说的原始文档\%%~i\html" htox32c /IP /O0 *.html popd md "..\..\已下载小说的原始文档\%%~i\txt" 2>nul move "..\..\已下载小说的原始文档\%%~i\html\*.txt" "..\..\已下载小说的原始文档\%%~i\txt" call :PickupTXT "%%~i" move "..\..\已下载小说的原始文档\%%~i\%%i.txt" ..\..\..\整理结果 ) title %TT%-整理完毕 echo 整理完毕 pause exit :DownHTML :: 下载小说各章节页面文件 set "chapter=%~2" set "chapter=%chapter:*第=%" set "chapter=%chapter:~0,-2%" title %TT%-正在下载 "%~1_第 %chapter% 节" if %lastchapter% lss %chapter% set lastchapter=%chapter% curl --create-dirs -o "..\..\已下载小说的原始文档\%~1\html\%chapter%.html" "%www%/%~3" goto :eof :PickupTXT :: 按先后顺序提取各章节页面正文并合并之 cls title %TT%-正在提取 %1 echo.&echo 正在合并各章节,请稍候... cd.>"..\..\已下载小说的原始文档\%~1\%~1.txt" for /l %%i in (1,1,%lastchapter%) do ( title %TT%-正在处理 "%~1\%%i.html" findstr /ibc:" " "..\..\已下载小说的原始文档\%~1\txt\%%i.txt">>"..\..\已下载小说的原始文档\%~1\%~1.txt" echo.>>"..\..\已下载小说的原始文档\%~1\%~1.txt" ) goto :eof :line echo. echo ________________________________________________________________________________ if defined choice ( echo 退出 X 返回主界面 M ) echo.&echo. goto :eof |
||
![]() 高级会员
|
速度目前是个问题
特别是遇上三五百章的小说 能让curl实现多线程抓取就爽了 |
||
![]() 待认证激活
|
谢谢,我也在用,挺好用的,说实在的有了这跟方便,就是速度不怎么样。
|
||
![]() 高级会员
|
下了,但好像用不了,地址复制上去了,但是老出现没有文件。
|
||
![]() 高级会员
|
下易读早期的小说有点问题
目录页不是第1节 第2节这样的那种 不过这类幸亏比较少 |
||
![]() 核心会员
|
多谢楼主。
|
||
![]() MSN:K8_8@MSN.COM QQ:123045077 |
![]() 核心会员
|
能不能把两个文件做附件传上来,第一个我这里链接不到
|
||
![]() 核心会员
|
|
||
![]() 中级会员
|
非常感谢楼主,但是楼主能不能解释一下下载的两个文件应当放在哪里才能被这个脚本调用啊,我执行到输入需要下载的文章首页网址后,就提示找不到系统需要的文件,然后就终止了。
此帖于 2010-02-18 20:13:02 被 xuyu1977 编辑. . |
||
![]() 核心会员
|
我下载了两个exe,放到同目录后执行下载全部,直接完成,结果什么也没下到.
|
||
![]() 高级会员
|
能不能做成一个绿色的文件?附件下不到
|
||
![]() 支柱会员
|
谢谢才知道这个网站。 用“魔爪”来抓站内小说,简单易行。
|
||
![]() 不知道你来自于哪里 所有呼吸着的都是你的兄弟 你的双脚带着泥土 最终你和大地合而为一 |
![]() 核心会员
|
|
||
![]() 中级会员
|
|
||