对于northcamel在BlogsToWordPress中提出的需求,希望添加点点轻博客搬家到wordpress的支持,虽然不太同意其看法,但是这样的功能,还是可以有的。
此处简单记录此过程和一些事项。
1.话说,点点轻博客,支持免费域名,所以除了常见的:
的类型的博客,也支持这些自定义的博客:
http://www.zoushijie.com/
http://blog.nuandao.com
http://nosta1gie.com
http://www.sankin77.com
http://www.zoushijie.com/post/2012-09-22/40038845472
但是,对于http://blog.nuandao.com,其本身对应的主页却又是:
所以,算是在博客的地址中,格式就很多,为了支持这些格式,就很麻烦了。
2.对于每种,或者说每个点点的博客,其内部的html,架构还是比较乱的。
html本身包含了N多的css定义。
且各种结构,比如标题,时间,标签等,都不统一,所以,为了解析这些值,要写N多特殊处理的代码,属于极其繁琐的。
所以,此处,也只能暂时支持部分的,已经测试过的博客。
3.帖子的地址,也乱起八糟的
常见的博客的帖子的地址,都是类似于
http://www.zoushijie.com/post/2012-09-28/40039054394
的,但是竟然遇到一个变态的,即
http://www.zoushijie.com/post/2012-09-28/40039054394
中的“上一篇”的地址是:
http://www.zoushijie.com/0000/0015
然后该帖子的之后的帖子的地址,又都是继续正常的了:
http://www.zoushijie.com/post/2012-09-28/40038784608
所以,点点轻博客,不仅页面内部乱,url地址也都够乱的。
4.上一篇 和 下一篇 的class竟然都是nex_page
下面有空就细数一下其html结构到底乱在哪里了
这个博客的最新一个帖子,首先地址就是特殊的,是类似于wordpress中填写了固定链接的:
http://www.zoushijie.com/huoshanhu
但是更加变态的是,由于只前面每个帖子的上一页和下一页的html代码是:
<a href="http://www.zoushijie.com/huoshanhu" class="next_page"> 上一篇</a> <a class="jump_page" href="http://www.zoushijie.com/random">随机文章</a> <!--循环输出页号--> <!--判断是否有下一页--> <a href="http://www.zoushijie.com/post/2012-10-12/40040684514" class="next_page"> 下一篇</a>
导致程序是去判断下一页是使用的是:
#http://www.zoushijie.com/post/2012-09-22/40038845472 # <a href="http://www.zoushijie.com/post/2012-09-25/40039034807" class="next_page"> # 上一篇</a> # ... # <a href="http://www.zoushijie.com/post/2012-09-22/40039124532" class="next_page"> # 下一篇</a> #Note: both are 'next_page', here find the first one foundNextPage = soup.find(name="a", attrs={"class":"next_page"}); logging.info("foundNextPage=%s", foundNextPage); if(foundNextPage): nextHref = foundNextPage['href']; logging.info("nextHref=%s", nextHref); if(nextHref): nextLinkStr = nextHref; foundNext = True;
结果却由于
http://www.zoushijie.com/huoshanhu
中的是:
<a class="jump_page" href="http://www.zoushijie.com/random">随机文章</a> <!--循环输出页号--> <!--判断是否有下一页--> <a href="http://www.zoushijie.com/post/2012-10-12/40040664173" class="next_page"> 下一篇</a>
导致,本来应该是没有下一篇的,但是由于误解析出来,上一篇的地址为“下一篇”中的http://www.zoushijie.com/post/2012-10-12/40040664173,最后导致程序死循环。
所以,此处变态的,上一篇和下一篇,都是使用next_page,就不是一般的挫人能设计出来的。。。
【已完整测试部分点点博客】
目前由于点点轻博客的内部页面太换乱,导致想要支持众多的各个点点旗下的各个博客的话,就要写成千上万的规则去解析每种页面。
很明显,这个是不现实的。
所以,目前能做到的是,测试了其中一些地址。
其他想要博客搬家的人,尽量在可能的前提下,把你的而博客的模板,使用和已测试博客的同样的模板,已保证搬家顺利。
如果各种模板都试了,结果还是无法搬家的话,再确认先去使用带带“上一篇”和“下一篇”的模板,然后再来找我,我尽量再为你专门给你这个模板,添加支持,使得可以实现博客搬家。
附上一些完整测试过的点点博客:
韩倩玮:
BlogsToWordpress.py -s http://hanhan–.diandian.com
走世界:
BlogsToWordpress.py -s http://www.zoushijie.com/
Stephen:
BlogsToWordpress.py -s http://stephenwei.diandian.com
千阳:
BlogsToWordpress.py -s http://matchachiharu.diandian.com