- Saved searches
- Use saved searches to filter your results more quickly
- abbypan/Novel-Robot
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.pod
- About
- [89 глава]Глубоко в своем сердце ты все еще не веришь мне по-настоящему.
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
download novel / forum thread, 小说/论坛下载器
abbypan/Novel-Robot
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.pod
download novel /bbs thread 小说/贴子下载器
support novel/forum website 支持小说/贴子站点
support robot ouput file type, 支持小说输出形式
for example, on debian, 以debian环境为例
$ apt-get install parallel ansible calibre cpanminus $ cpanm Novel::Robot
download and convert ebook, 简单下载或处理电子书
download the whole novel and convert to ebook 下载全本小说并转换为电子书
run_novel.pl -u "http://www.jjwxc.net/onebook.php?novelid=14838" -T epub run_novel.pl -u "http://www.jjwxc.net/onebook.php?novelid=14838" -o mytest.epub
download 1-3 chapter 下载小说的1-3章,最终输出文件名为abc.epub
run_novel.pl -u "http://www.jjwxc.net/onebook.php?novelid=14838" -o abc.epub -G "-i 1-3"
convert txt to ebook, 把txt文件转成电子书
run_novel.pl -f 飘灯-风尘叹.txt -T epub run_novel.pl -f fct.txt -w 飘灯 -b 风尘叹 -T epub
download by site-writer-book and convert
run_novel.pl -s lofter -T epub -w chuweizhiyu -b 时之足 run_novel.pl -s lofter -T epub -w chuweizhiyu -b 时之足 -G "-i 3-" run_novel.pl -s lofter -T epub -w chuweizhiyu -b 时之足 -G "-i 3-5"
download/convert novel, use calibre-smtp to send ebook to email address : xxx@kindle.cn
local smtp service 本地已安装smtp服务
run_novel.pl -u "http://www.jjwxc.net/onebook.php?novelid=14838" -T epub -t "xxx@kindle.cn" -S " yyy@somesite.cn " run_novel.pl -f fct.txt -w 飘灯 -b 风尘叹 -T epub -t "xxx@kindle.cn" -S " yyy@somesite.cn "
remote smtp service 使用远程smtp服务
run_novel.pl -u "http://www.jjwxc.net/onebook.php?novelid=14838" -T epub -t "xxx@kindle.cn" -G "-i 1-3" -S " --relay smtp.src.com --port 587 -u xxx -p somepwd yyy@somesite.cn " run_novel.pl -u "http://www.jjwxc.net/onebook.php?novelid=14838" -T epub -t "xxx@kindle.cn" -S " --relay smtp.qq.com --port 587 -u yyy -p 'aaaaaaaaaaaaagga' yyy@qq.com " run_novel.pl -f fct.txt -w 飘灯 -b 风尘叹 -T epub -T epub -t "xxx@kindle.cn" -S " --relay smtp.qq.com --port 587 -u yyy -p 'aaaaaaaaaaaaagga' yyy@qq.com "
use ansible,push ebook to remote host, and then send email
run_novel.pl -h remote.vps.com -u "http://www.jjwxc.net/onebook.php?novelid=14838" -T epub -t "xxx@kindle.cn" -S " --relay smtp.qq.com --port 587 -u yyy -p 'aaaaaaaaaaaaagga' yyy@qq.com "
-s : site, 小说站点 -u : book url,小说url -w : writer name, 作者 -b : book name,书名 -f : txt file, txt文件或目录 -t : send to email address,推送的目标邮箱地址 -o : output filename,输出电子书文件名 -T : ebook type,电子书类型 -G : get_novel.pl args -C : conv_novel.pl args -S : calibre-smtp send email args -h : remote host,远程调用的机器名
get_novel.pl -u [url] -t [type] -i [min_item_num-max_item_num] --cookie [cookie] -o [dst_file/dst_dir] get_novel.pl -u [小说目录页url] -t [目标文件类型] -i [起止章节号] --cookie [cookie登录信息] -o [目标文件名/目标文件夹] get_novel.pl -u "http://www.jjwxc.net/onebook.php?novelid=14838" -t txt get_novel.pl -u "http://www.jjwxc.net/onebook.php?novelid=14838" -t html get_novel.pl -u "http://www.jjwxc.net/onebook.php?novelid=14838" -t html -i 3 get_novel.pl -u "http://www.jjwxc.net/onebook.php?novelid=14838" -t html -i 3-4 get_novel.pl -u "http://www.jjwxc.net/onebook.php?novelid=14838" -t html -i 3- get_novel.pl -u "http://www.jjwxc.net/onebook.php?novelid=14838" -t html -i -3
get_novel.pl -u "https://www.aliwx.com.cn/chapter?bid=7964189" --use_chrome --writer_path "//div[@class='chapterbox']//span" --book_regex "(.+?)-" --content_path "//div[@class='chapter-content']"
get_novel.pl -u "https://mp.weixin.qq.com/s?xxxx" --use_chrome --content_path "//div[@id='js_content']" --item_list_path "//div[@id='js_content']//a" -w somewriter -b somebook
jjwxc vip: 可以使用firefox浏览器,先登录m.jjwxc.net,然后用 cookies.txt 扩展导出cookies.txt,则可以下载当前登录账号所购买的小说;也可直接指定firefox配置目录下的cookies.sqlite文件;或者直接使用m.jjwxc.net的cookie字符串
get_novel.pl -u "http://www.jjwxc.net/onebook.php?novelid=217747" -i 33-34 --cookie cookies.txt get_novel.pl -u "http://www.jjwxc.net/onebook.php?novelid=217747" -i 33-34 --cookie ~/.mozilla/firefox/*/cookies.sqlite get_novel.pl -u "http://www.jjwxc.net/onebook.php?novelid=217747" -i 33-34 --cookie "name1=value1; name2=value2"
convert txt, parse chapter name with regex
get_novel.pl -w [writer] -b [book] -f [txt_file/directory] -t [type] -r [chapter_regex] get_novel.pl -w [作者] -b [书名] -f [txt文件或目录] -t [目标文件类型] -r [章节标题匹配的正则式] get_novel.pl -w 牵机 -b 断情逐妖记 -f dq1.txt -t html get_novel.pl -w 牵机 -b 断情逐妖记 -f dq1.txt,dq2.txt,dir1 -r "第[ \\t\\d]+章" -t html get_novel.pl -f 飘灯-像妖怪一样自由.txt -t html
only print info, but not download, 输出小说信息(不下载)
get_novel.pl -u [url] -D 1 get_novel.pl -u "http://www.jjwxc.net/onebook.php?novelid=14838" -D 1
-s : site, 指定站点 -u : book url,小说url -w : writer name 作者名 -b : book name,书名 -f : txt file / txt file dir, 指定文本文件来源(可以是单个目录或文件) -c : firefox cookies.sqlite / netscape HTTP cookie file / cookie string, details in Novel::Robot::Browser -t : save type, 小说保存类型,例如txt/html -o : output filename, 保存的小说文件名 -p : min_page_num-max_page_num, 只取 x-y 页 -i : min_item_num-max_item_num, 只取 x-y 章/楼 -D : only print info, not download, 只输出信息,不下载 -v : verbose --term_progress_bar: 显示进度条(默认不显示) --use_chrome : use chrome dump_dom, only support GET method --with_toc : 小说保存时是否生成目录(默认是) --grep_content : 提取关键字 --filter_content : 过滤关键字 --only_poster : 贴子只看楼主 --min_content_word_num : 贴子每楼层最小字数 --max_process_num : 进程个数 --chapter_regex: 指定分割章节的正则表达式(例如:"第[ \\t\\d]+章") --item_list_path : xpath to extract item_list, 提取item_list的路径 --content_path : xpath to extract content, 提取content的路径 --writer_path : xpath to extract writer, 提取writer的路径 --book_path : xpath to extract book, 提取book的路径 --content_regex : regex to extract content, 提取content的正则 --writer_regex : regex to extract writer, 提取writer的正则 --book_regex : regex to extract book, 提取book的正则
use calibre to convert novel file into epub/epub/. default filename format is [writer]-[bookname].[type]
使用calibre将下载的 html格式 的小说转换成 其他格式的电子书,例如epub、epub等等。如果未指定writer及book选项,则需要将html源文件名称设置为 [作者-书名]
conv_novel.pl -f [txt_file] -T [type] -w [writer] -b [book] conv_novel.pl -f [源文件] -T [目标文件类型(小写)] -w [作者] -b [书名] conv_novel.pl -f 天平-风起阿房.html -T epub conv_novel.pl -f mxj.html -w 施定柔 -b 迷侠记 -T epub
get bulk novel info: , default option is not download
get writer’s novels info, not download
bulk_novel.pl -b "http://www.jjwxc.net/oneauthor.php?authorid=14644" bulk_novel.pl -b "http://www.jjwxc.net/oneauthor.php?authorid=14644" -i 1-3
get board’s threads info, not download
bulk_novel.pl -b "http://bbs.jjwxc.net/board.php?board=153&page=0" -P 1-2 bulk_novel.pl -b "http://bbs.jjwxc.net/board.php?board=153&page=0" -i 1-20
query novels info, not download
bulk_novel.pl -s jjwxc -q 作者 -k 牵机 -i 1-10 bulk_novel.pl -s jjwxc -q 作品 -k 网王 -P 1-3 bulk_novel.pl -s hjj -b 153 -q 贴子主题 -k 迷侠记
bulk_novel.pl -b "http://www.jjwxc.net/oneauthor.php?authorid=14644" -D 0
manually select some novels, use parallel for multiple novels download
bulk_novel.pl -s jjwxc -q 作者 -k 牵机 -P 1 > raw_booklist.txt awk -F, '$1=="牵机"' raw_booklist.txt > refine_booklist.txt parallel --colsep , run_novel.pl -u "" -T epub . refine_booklist.txt
-s : site, 指定站点 -b : board_url / board_id 版块url,或版块编号 -q : query type, 查询类型 -k : query keyword, 查询关键字 -P : min_page_num-max_page_num, 只取 x-y 页 -i : min_item_num-max_item_num, 只取 x-y 项 -D : only print info, not download, 只输出信息,不下载
init to set src site and dst type
my $xs = Novel::Robot->new( site => 'jjwxc', type => 'html', );
download one novel/thread 下载整本小说
$xs->set_parser('jjwxc'); my $index_url = 'http://www.jjwxc.net/onebook.php?novelid=2456'; $xs->get_novel($index_url); $xs->set_parser('txt'); $xs->get_novel([ '/somepath/somefile.txt' ] writer => '牵机', book => '断情逐妖记', );
bulk download writer’s novel 下载作者专栏
#!/usr/bin/perl use strict; use warnings; use utf8; use Novel::Robot; use Data::Dumper; use Encode::Locale; use Encode; my $xs = Novel::Robot->new(); $xs->set_parser( 'jjwxc' ); $xs->set_packer( 'html' ); my $writer_url = 'http://www.jjwxc.net/oneauthor.php?authorid=14644'; my $writer_ref = $xs->->get_iterate_ref( $writer_url, info_sub => sub < $xs->->extract_elements( @_, sub => $xs->->can( "parse_board" ), ); >, item_list_sub => sub < $xs->->can( "parse_board_item" )->( $xs->, @_ ) >, ); print encode( locale => "$writer_ref->,$_->,$_->\n" ) for @< $writer_ref-> >; print "\nstart download\n"; $xs->get_novel( $_-> ) for @< $writer_ref-> >;
bulk download query novel 下载查询结果
#!/usr/bin/perl use strict; use warnings; use utf8; use Novel::Robot; use Data::Dumper; use Encode::Locale; use Encode; my $xs = Novel::Robot->new(); $xs->set_parser( 'jjwxc' ); $xs->set_packer( 'html' ); my $keyword = '断情逐妖记'; my $query_url = $xs->->make_query_request($keyword, query_type => '作品'); my $query_ref = $xs->->get_iterate_ref( $query_url, info_sub => sub < return <>; >, item_list_sub => sub < $xs->->can( "parse_query_item" )->( $xs->, @_ ) >, ); print encode( locale => "$_->,$_->,$_->\n" ) for @< $query_ref-> >; print "\nonly download first\n"; $xs->get_novel( $_-> ) for @< $query_ref-> >[0];
About
download novel / forum thread, 小说/论坛下载器
[89 глава]Глубоко в своем сердце ты все еще не веришь мне по-настоящему.
Жалоба на историю
-Ваше превосходительство, если вы просто проходите мимо, тогда, пожалуйста, идите в другое место.
Хотя собеседник не раскрыл его истинный облик, его фигура показалась ему немного знакомой, другая сторона была именно тем человеком, которым он считал себя.
Однажды он слышал, как Янь Уши объяснял обычаи цзянху раньше - когда вы выйдете на улицу, неизбежно найдется несколько воров, которые прячутся на крыше гостиницы. чтобы дождаться возможности атаковать клиентов, украсть их деньги или по другому скрытому мотиву.
В этот момент им нужно было бы показать, что они были из секты, если они были таковыми; когда другая сторона увидит это навыки ваших боевых искусств были очень продвинутыми или у вас был большой опыт, они обычно не осмеливались бы атаковать вас снова.
С внезапно появившимся навыком легкости от Шэнь Цяо, люди обычно сразу могли бы сказать, что с ним было трудно иметь дело, и он не стали бы осмеливаться так легко его обидеть. Однако другая сторона не сказала ни слова и даже предприняла внезапную атаку, прежде чем он даже закончил говорить.
Эта техника выглядела так же, как распрямление цветка и срывание ивового листа, очень мягкая и нежная. Но это было не то, чего ожидал Шэнь Цяо. Воздух, исходящий от ладони, был слабым и легким, как перышко, но, достигнув середины, он внезапно превратился в леденящий до костей и проникающий воздух, когда он ударил прямо ему в лицо!
Как только рукава верхней одежды Шэнь Цяо закатываются, он намеревался полностью растворить весь воздух из ладони. Однако, как только фигура другой стороны мгновенно исчезла со сцены, он уже появился перед ним. Акупунктурная точка на его запястье была заблокирована его правой рукой, в то время как его левая рука ухватилась за шею Шэнь Цяо.
Шэнь Цяо не отступил, а вместо этого двинулся вперед. Его рукава походили на бушующие волны, бьющиеся о берег, тяжело хлопая по левой руке противника. Как только его левая рука с большой легкостью перевернулась, он выскользнул из ограждения противника и начал ловить его с противоположной стороны.
-Янь Уши? - осторожно спросил он только потому, что эта пара рук показалась ему немного знакомой.
Однако движения его боевых искусств были совсем не такими. Как раньше, человек в черной мантии не ответил. Он был неподвижен и молчал, и только протянул руку, чтобы ударить снова. Но другой участник не выглядел так, как будто хотел лишить Шэнь Цяо жизни.