DF-PUSH(Jun.17)——Sina-Crawler:将新浪博客的文章完美生成电子书

0
Want create site? Find Free WordPress Themes and plugins.

前几个月淀粉 @DrDrinkMa 跟居正建议能不能介绍一下Kindle相关的技术,由于居正也是在这几个月买了kindle,也就折腾了好一番。居正喜欢上新浪博客看作者的小说,本来是在平板上用新浪博客客户端看的,可是在kindle上没有啥客户端,只能把文章转换为电子书来阅读。但是按照传统的方法,我们需要把文章一片片复制到markdown文件里,然后用gitbook、calibre之类的软件生成电子书。短篇文章还行,但那种几十章的长篇小说就显得非常吃力繁琐了(而且很不Geek)。。那么作为Geek(假),居正想到的是用自动化的脚本抓取文章,生成电子书。但到github上搜一圈之后发现并没有这样的开源项目,倒是有新浪微博和百度贴吧的爬虫。。所以,居正果断决定自己动手!自己编写,然后根据需求修改,几经雕琢终于把程序完善了,这里就慷慨的开源然后推荐给有需要的朋友~

github地址:https://github.com/juzeon/advanced-php-crawler

github上的介绍:

这套PHP编写的小程序可以帮助喜欢在电子书阅读器上看新浪博客上文章的你,它可以根据已知的文章列表来爬行,亦可以根据已知的文章目录来爬行。而且,它生成的是gitbook的标准格式,可以用gitbook/calibre工具自动生成多种格式(mobi/epub/pdf)的电子书。文章细节均已自动优化,爬行图片保存到本地,也生成封面,且使用MarkDown格式,只为带给你完美的阅读体验!

下面介绍下各个文件的作用(就直接复制README啦):

文件功能详解:

sina-list.php

它用于爬行像这样子的博客文章目录:

新浪博客爬虫-列表爬虫

-可以集合已知文章目录(/s/articlelist*)里面的文章列表

使用方法:

php sina-list.php <网址文件>

参数解释:

<网址文件>:一行一个网址,请使用电脑版访问后复制

命令示例:

php sina-list.php urls.txt

网址文件示例:

http://blog.sina.com.cn/s/articlelist_123456wsla.html

http://blog.sina.com.cn/s/articlelist_789456wsex.html

sina-article.php

它用于爬行像这样子的具体文章:

新浪博客爬虫-文章爬虫

-可以提取已知文章页面(/s/blog*)里面的文章

使用方法:

php sina-article.php <网址文件>

参数解释:

<网址文件>:一行一个网址,请使用电脑版访问后复制

命令示例:

php sina-article.php urls.txt

网址文件示例:

http://blog.sina.com.cn/s/blog_123456wsla.html

http://blog.sina.com.cn/s/blog_789456wsex.html

tool-rev.php

它用于把上面说的网址文件前前后后颠倒过来

新浪博客爬虫-网址文件反转工具

-将某个网址文件里面的url全部反转过来,可用于处理新旧文章顺序等

使用方法: php tool-rev.php <网址文件>

参数解释:

<网址文件>:一行一个网址,请使用电脑版访问后复制

命令示例:

php tool-rev.php urls.txt

网址文件示例:

http://blog.sina.com.cn/s/xxx_123456wsla.html

http://blog.sina.com.cn/s/xxx_789456wsex.html


下面居正来手把手教你怎么用~

首先,这个程序是PHP写的,所以你需要安装php环境,windows用户推荐安装phpstudy:http://www.phpstudy.net/

然后把项目clone下来(或者直接点击绿色按钮下载zip包),cd到项目目录。

我以爬取两页短篇小说为例,这样可以介绍到到项目中所有的文件。

现在,我打开新浪博客作者的文章主页:

看到确实是文章目录了,复制地址栏的URL。我这里就爬取两页做示范,所以我复制的URL是这两个:

http://blog.sina.com.cn/s/articlelist_1991520912_1_1.html

http://blog.sina.com.cn/s/articlelist_1991520912_1_2.html

把URL一行一个保存成文本文件放到项目目录下面,像这样:

接下来使用sina-list.php目录爬取文章列表,生成出来各个文章具体的URL。我这里的命令是:

php sina-list.php s短篇小说.txt

没什么问题,文章列表就爬出来了。,生成了名为“LIST+s短篇小说.txt”的具体文章URL

这里注意,这些文章是按日期从新到旧排序的,那么我在看书的时候肯定是从旧文章看到新文章,就需要用到tool-rev.php程序把文章顺序倒过来一下:

php tool-rev.php LIST+s短篇小说.txt

打开文件看两眼,应该是这样的:

(很难想象这么一大堆文章要是手动复制的话得复制多久。。。)

OK,现在万事俱备,只剩运行重磅程序sina-article.php来自动化抓取文章了~

php sina-article.php LIST+s短篇小说.txt

processing…

~ ~ ~

大概一分钟左右程序就跑完了!

现在使用gitbook工具生成电子书。如果你没有安装gitbook,请参阅:

Gitbook安装全解

Gitbook+Calibre安装及使用

我先更改书籍目录下面的book.json文件,重新取一个书名:

我输入这样的命令生成kindle兼容格式的电子书:

gitbook mobi BOOK+LIST+s短篇小说/ 短篇小说.mobi

片刻等待之后,电子书的mobi文件已经躺在文件夹里了:

用calibre的电子书预览器,打开看看效果:

不仅有目录,连图片都有了哦~赶紧拷贝到kindle上一饱眼福~~~


以上,就是居正今天给大家带来的全部内容了。希望大家喜欢我的项目(来个star呗~),祝大家阅读愉快~

Did you find apk for android? You can find new Free Android Games and apps.

关于作者

大道至简

发表评论