用proxomitron配合curl下载制作电子书
Posted: Jun 13 2008, 12:21
先说明一下,下载制作电子书的工具有很多,方法也有很多,这里只是在某些特殊情况下,比较适合我自己的。我很少看电子书,正则看过一点,不过不常用,手生得很。这几天闲来无聊,有兴趣看看书,没发现哪里有现成的TXT版的下载,好在有NBTIE这个站,方便是方便了,可发现有时翻页时等待的时间太长,就想把书下下来看,复制粘贴肯定是不行的,劳动量大,太机械,太没成就感了。想到用curl和sed配合,可sed的正规又要现学,况且还要有一定的功力才能达到理想的效果。所以只能找适合我自己的办法,proxomitron的正规我算是较常用,而且它是针对HTML的,使用起来较普通的正规有优势,用它作代理,curl来下载即可很方便地完成任务:
以此文为例:http://www.nbtie.com/retie/wodezhiyelao ... 14_11.html
看几篇文章的源代码,以决定proxomitron的规则:
Limit要设得大一些,因为是全文过滤嘛。
注意,这里没有用变量\1支持把文章主体提取出来是因为最近在使用这些变量的时候发现当字符数超过一定的范围,变量就不管用了(具体的字符数我没在帮助里看到)
再在命令行下
-x是用来指定代理服务器地址(这里提醒一下,最好用proxomitron多开补丁,以另一个prox做这个工作,不会在使用过程中影响正常的浏览)
下载完后,基本不需要的东西都过滤干净了,剩下一些小的地方不太满意的话,只要简单的用排版工具就可以搞定了
附上curl的介绍:
curl是一个利用URL语法在命令行方式下工作的文件传输工具。它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传, 上载文件断点续传, http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器, 通过http代理服务器上传文件到FTP服务器等等,功能十分强大。Windows操作系统下的网络蚂蚁,网际快车(FlashGet)的功能它都可以做到。准确的说,curl支持文件的上传和下载,所以是一个综合传输工具,但是按照传统,用户习惯称curl为下载工具。curl是瑞典curl组织开发的,您可以访问http://curl.haxx.se/获取它的源代码和相关说明。
以此文为例:http://www.nbtie.com/retie/wodezhiyelao ... 14_11.html
看几篇文章的源代码,以决定proxomitron的规则:
Code: Select all
[Patterns]
Name = "eBook"
Active = TRUE
Limit = 32767
Match = "*<div class=tianya>*</div>|<SPAN id=nb_tt></SPAN> </div> <div id="adl7">*|$NEST(<a*,</a>)|$NEST(<font*,</font>)|<[^>]++>"
注意,这里没有用变量\1支持把文章主体提取出来是因为最近在使用这些变量的时候发现当字符数超过一定的范围,变量就不管用了(具体的字符数我没在帮助里看到)
再在命令行下
Code: Select all
curl http://www.nbtie.com/retie/wodezhi
yelaoqianshengya/wodelaoqianshengya814_[12-66:1].html>c:\1.txt -x 127.0.0.1:8081
下载完后,基本不需要的东西都过滤干净了,剩下一些小的地方不太满意的话,只要简单的用排版工具就可以搞定了
附上curl的介绍:
curl是一个利用URL语法在命令行方式下工作的文件传输工具。它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传, 上载文件断点续传, http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器, 通过http代理服务器上传文件到FTP服务器等等,功能十分强大。Windows操作系统下的网络蚂蚁,网际快车(FlashGet)的功能它都可以做到。准确的说,curl支持文件的上传和下载,所以是一个综合传输工具,但是按照传统,用户习惯称curl为下载工具。curl是瑞典curl组织开发的,您可以访问http://curl.haxx.se/获取它的源代码和相关说明。