名称

Novel::Robot 小说下载器

说明

支持小说站点

Jjwxc   : http://www.jjwxc.net
Dddbbb  : http://www.dddbbb.net
Nunu    : http://book.kanunu.org
Shunong : http://book.shunong.com

支持小说输出形式

TXT
HTML
Markdown
WordPress

工具

下载小说

get_novel.pl -b [小说目录页url] -t [目标文件类型]

get_novel.pl -b "http://www.dddbbb.net/html/18451/index.html" -t TXT
get_novel.pl -b "http://www.jjwxc.net/onebook.php?novelid=2456" -t HTML
get_novel.pl -b "http://www.jjwxc.net/onebook.php?novelid=2456" -t Markdown

get_novel.pl -w [作者] -b [书名] -f [TXT文件或目录] -r [章节标题匹配的正则式] -t [目标文件类型]
get_novel.pl -w 顾漫 -b 何以笙箫默 -f hy1.txt -t HTML
get_novel.pl -w 顾漫 -b 何以笙箫默 -f hy1.txt,hy2.txt,dir1 -r "第[ \\t\\d]+章" -t HTML

将小说发布到wordpress

put_novel.pl -b [小说目录页url] -c [类别] -T [标签] -W [wordpress页面地址] -u [用户名] -p [密码] 

put_novel.pl -b "http://www.dddbbb.net/html/18451/index.html" -c 言情 -W http://xxx.xxx.com  -u xxx -p xxx
put_novel.pl -b "http://www.jjwxc.net/onebook.php?novelid=2456" -c 原创 -W http://xxx.xxx.com  -u xxx -p xxx

put_novel.pl -w [作者名] -b [用户名] -f [源文件] -c [类别] -T [标签] -W [wordpress页面地址] -u [用户名] -p [密码] 
put_novel.pl -w 顾漫 -b 何以笙箫默 -f hy.txt -c 言情 -W http://xxx.xxx.com  -u xxx -p xxx
put_novel.pl -w 施定柔 -b 迷行记 -f mx1.txt,mx2.txt -c 言情 -W http://xxx.xxx.com  -u xxx -p xxx

转换小说格式

convert_novel.pl [源文件] [目标文件类型(小写)]

需要预先安装calibre的ebook-convert,源文件名称格式为 [作者-书名]

convert_novel.pl 施定柔-迷侠记.html mobi
convert_novel.pl 施定柔-迷侠记.html epub

批量处理小说(支持to TXT/HTML/...)

novel_robot.pl -w [writer_url] -m [select_menu_or_not] -t [packer_type]
novel_robot.pl -s [site] -q [query_type] -k [query_keyword] -m [select_menu_or_not] -t [packer_type]

novel_robot.pl -w "http://www.jjwxc.net/oneauthor.php?authorid=3243" -m 1 -t HTML
novel_robot.pl -s Jjwxc -q 作品 -k 何以笙箫默 -m 1 -t HTML

命令行参数

-b : book url,小说目录页 / book name,书名
-c : categories,小说类别,例如 原创
-f : 指定文本来源(可以是单个目录或文件)
-i : chapter ids,章节序号,例如 1,4-7,10
-k : 查询的关键字
-m : 是否输出小说选择菜单
-p : wordpress 密码
-q : 查询的类型
-r : 指定分割章节的正则表达式(例如:"第[ \\t\\d]+章")
-s : 指定查询的站点
-t : 小说保存类型,例如TXT/HTML
-T : tags,标签,例如 顾漫
-u : wordpress 用户
-w : writer url 作者专栏URL / writer name 作者名
-W : wordpress 地址

函数

new 初始化

my $xs = Novel::Robot->new();

set_parser 设置解析引擎

$xs->set_parser('Jjwxc');

set_packer 设置打包引擎

$xs->set_packer('HTML');

get_book 下载整本小说

$xs->set_parser('Jjwxc');
my $index_url = 'http://www.jjwxc.net/onebook.php?novelid=2456';
$xs->get_book($index_url);


$xs->set_parser('TXT');
$xs->get_book({ writer => '顾漫', book => '何以笙箫默', 
        path => [ '/somepath/somefile.txt' ] });

select_book 在Term下选择小说

$xs->set_parser('Jjwxc');

my $writer_url = 'http://www.jjwxc.net/oneauthor.php?authorid=3243';
my $writer_ref = $xs->{parser}->get_writer_ref($writer_url);
my $select_ref = $xs->select_book($writer_ref);

my $query_type = '作者';
my $keyword='顾漫';
$books_ref = $xs->{parser}->get_query_ref($query_type, $keyword);
my $select_ref = $xs->select_book($query_ref);