Jerkwin分享 http://blog.sciencenet.cn/u/Jerkwin

博文

下载整理中国哲学电子书的脚本

已有 5259 次阅读 2017-11-21 11:06 |系统分类:科研笔记

  • 2017-11-21 10:40:11

我喜欢将一些书的文本存在手机上, 这样可以利用碎片化的时间随时阅读几句. 中国的古文最适合这样的目的, 因为大多很短, 且言简意赅. 中国哲学书电子化计划网站上有很多整理好的古文文本, 但保存不方便, 所以就想能不能自动下载整理呢? 根据网站的地址和格式分析了一下, 似乎可行. 脚本如下:

ctxt.bsh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# url="http://ctext.org/analects/zhs"; trs=1# url="http://ctext.org/mengzi/zhs";   trs=0# url="http://ctext.org/xunzi/zhs";  trs=0# url="http://ctext.org/kongzi-jiayu/zhs"# url="http://ctext.org/shi-shuo-xin-yu/zhs"# url="http://ctext.org/yan-shi-jia-xun/zhs"# url="http://ctext.org/zhuangzi/inner-chapters/zhs"# url="http://ctext.org/book-of-changes/zhs"url="http://ctext.org/shang-shu/zhs"; trs=0

exportLANG=$(locale -uU)# 设定中文支持

curl $url > _chp

awk ' BEGIN{system("rm -rf _ctx")}
/  <a class="menuitem"/ {
	sub(/.*href=\"/, "")
	sub(/\".*/, "")url="http://ctext.org/"$0
	print url
	system("curl "url" >>_ctx")}' _chp

awk -v trs=$trs' BEGIN {chp=0; tot=0}
/<div id="content3"/ {
	gsub(/^[^《]+《/,"《")
	gsub(/》.+/,"》")
	chp++; sec=0
	print "第 "chp" 章 "$0"\n"}
/<div id="comm[0-9]+"/ {
	gsub(/<[^>]+>/,"")
	sec++;
	if(trs){if(sec%2) print chp"."(sec+1)/2, $0else{tot++; print tot" "$0"\n"}}else{
		tot++;
		print chp"."sec"/"tot, $0"\n"}}' _ctx > _ctx.txt

可惜的是, 这个网站明言请注意:严禁使用自动下载软体下载本网站的大量网页,违者自动封锁,不另行通知。根据我的测试, 还确实是这样, 下载量大了之后自动封IP. 要想解决的话, 只能自动换IP或者慢慢下载了.

◆本文地址: https://jerkwin.github.io/2017/11/21/下载整理中国哲学电子书的脚本/, 转载请注明◆
◆评论问题: https://jerkwin.herokuapp.com/category/3/博客, 欢迎留言◆



https://blog.sciencenet.cn/blog-548663-1086175.html

上一篇:使用GROMACS进行团簇分析
下一篇:曲线的变形
收藏 IP: 72.221.39.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-10 02:57

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部