这两天突发奇想,在做一个抓取天涯论坛帖子内容的小程序:通过输入帖子首页地址,我的CatchTianya小程序可以将天涯上这个帖子的所有页面的帖子内容(过滤所有的广告)截取并显示在我的页面中,并可以设置是否只抓取楼主的帖子内容,并可以将抓取结果文本内容复制到Windows剪贴板以及保存在一个文本文件中。
很简单的小程序,不过还挺有用的,至少对我来说,呵呵。经常看到很长的连载帖子,经常没耐心趴在电脑上一页一页翻着看,总喜欢存到文本文件中用PSP或手机慢慢看。遇到十几页甚至几十页的长贴就痛苦了,要一页一页的打开,一页一页的复制粘贴,很繁琐和累人。现在有这个小程序就方便了,只要把首页地址粘贴上,一键搞定!小有一点学以致用的感觉,还挺有成就感的,呵呵。
先贴个完成效果图吧,呵呵。
输入一个帖子的首页地址,点击Catch!
读到第3页了,呵呵
抓完收工!
做的过程中也遇到了不少困难,在解决这些问题的过程中也积累了些经验,记录一下。
1.如何在Javascript中使用并输出文本文件(记事本)的换行字符
网页内容截取基本上完成了,最后被一个看似很小的问题困扰了半天。这就是如何在Javascript中使用并输出文本文件(记事本)的换行字符。为方便显示,在我的网页中显示的文本内容包括部分的html控制字符,如<center>,<br>等。其他的字符都很容易的替换了,但是<br>的替换却出现了问题。我居然找不到如何在Javascript中实现文本文件的换行。我先试了/n,不好使,然后又百度Google一通,/n/r等等一堆字符都不行,记事本很执着的一次次显示这小黑块。我保存了一个含有换行的文本文件,然后用UltraEdit打开查看16进制编码,发现是0d0a。然后又找了半天,终于找到了Javascript中将16进制数转换成字符的方法,unescape!这样我先保存一个回车的变量var strEnter=unescape("%0d%0a"),然后将<br>替换成这个变量。搞定!
过两天准备传到个免费空间上去,让别人也能用用,hoho