最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

BlogsToWordPress v18.4 – 将(新版)百度空间,网易163,新浪sina,QQ空间,人人网,CSDN,搜狐Sohu,博客大巴Blogbus,天涯博客,点点轻博客等博客搬家到WordPress

crifan 49996浏览 0评论

最后更新:v2017-09-14


前言:

1.使用本脚本之前必看:

BlogsToWordPress使用前必读

2.想要看本程序的使用说明,可直接去这里:

BlogsToWordPress 的用法的举例说明

3.有任何问题,意见,建议,bug提交等,建议去专门的讨论区:

BlogsToWordPress – WordPress博客搬家工具 讨论区

4.如果想要对此脚本进行扩展,以支持更多类型的博客搬家,可参考:

如何扩展BlogsToWordPress以支持更多类型的博客搬家

 


BlogsToWordpress简介

BlogsToWordpress是Python语言实现的脚本。

主要用来实现:

1. 将(新版)百度空间,网易163,新浪sina,QQ空间,人人网,CSDN,搜狐Sohu,博客大巴Blogbus,天涯博客,点点轻博客等博客,搬家到wordpress

(即通过此Python脚本,将博客中的帖子的各种信息,导出为WXR文件。然后就可以将其导入wordpress,实现博客搬家了。)

2. 以及搬家后,修改原先帖子,添加搬家声明等信息。

下载BlogsToWordpress

关于下载:

之前的BlogsToWordpress,从v1到v17.1,都是放在GoogleCode上面的:

GoogleCode上面的BlogsToWordpress

后来由于GoogleCode不支持下载功能,而搬家到SourceForge:

【记录】把BlogsToWordPress项目从GoogleCode搬家到SourceForge

目前最新下载主页是:

Github上的BlogsToWordpress

(旧版本:

SourceForge上的BlogsToWordpress

之后,所有的最新版本,都请到SourceForge上的BlogsToWordpress 去下载。)

 

此处,把目前的最新版本的源码和可执行文件的下载地址,贴出来,方便直接点击下载:

 

最新版本号 源码下载地址 可执行文件下载地址
v18.3 BlogsToWordpress_v18.3_2014-05-23.7z
v18.2  
v17.7 BlogsToWordpress_v17.7_2013-08-27.7z

 

BlogsToWordpress的由来

关于最初的要把博客导入到wordpress中的详细折腾过程,参见:

记录 wordpress折腾过程

此处只简要说说过程。

之前机缘巧合,想弄一个个人网站,然后就找到了wordpress。

用wordpress把网站搭建起来后,就遇到了,需要把之前其他博客的帖子,搬家搬到当前的个人网站。

接着就知道了,有个wordpress importer的东西,支持把对应的WXR文件导入到wordpress中,就可以实现帖子搬家了。但是对于如何获得/生成对应的WXR文件,就遇到了问题。

网上所能找到的所有的方法,都不能实现我要的功能。

最接近,最可能的,可以实现需要的功能,算是下面这几个工具了:

1。先是BlogMover.zip中的163-blog-mover.py和hi-baidu-mover.py,都不能用,

2 。其次,后来找到的新版本的hi-baidu-mover_v2.zip中的hi-baidu-mover_v2.py,也不能用。

两者的最原始的代码,都是参考 Live Space Mover的,其代码放在google code了:live-space-mover

接下来,就是被逼无奈,在对于Python只有写过一个简单的脚本:

[tmp] python: parse command

的基础上,花了大半个月,实现了这个脚本的:

(1)第一个版本

BlogsToWordpress_v2012-01-10.7z

是百度和163分开实现的。

当时不了解如何通过python去登陆百度,163等博客,所以也就无法导入博客中的私人日志。

(2)第二个版本:

后来在折腾了:

WLW (Windows Live Writer) Plugin–InsertSkydriveFiles

后,搞懂了如何C#中如何登陆网页,搞懂了cookie等相关的逻辑,然后回头又来通过python语言,实现了这套逻辑,因此,也就可以把登录功能添加到了此脚本中。实现了第二个版本的BLogsToWordpress,即支持登陆模式下的,导入所有的帖子,包括公开的public的帖子,和私人的private的帖子。

并且又接着在登陆模式基础上,添加修改帖子内容,以添加博客搬家声明的功能。

本来想单独放出来此第二个版本的,但是考虑到代码有点乱,以及本来就像将两个单独的python脚本baiduBlogToWordpress和163BlogToWordpress合并到一起的,所以就又去花时间,折腾出下面的:

(3)第三个版本:

此版本,是将两个脚本中间包含了很多重复的代码,。因此,在其基础上,动了大手术:

把整个博客搬家相关的框架部分的代码,抽取出来放到核心的BlogsToWordpress中;

然后再把不同博客提供商(百度和163)对应的代码,分别放到BlogBaidu和BlogNetease中去;

同时又把常用的功能提取出来,整理为我的自己的python库:crifanLib.py

至此,才算实现我最终想要的,即把博客搬家,弄成框架式的。

这样,以后如果谁想要实现其他博客搬家的话,就可以参考已经实现的百度,163的博客的代码,然后照葫芦画瓢,去写个对应的BlogXXX,实现了对应的接口函数,也可以同样实现对应的博客搬家的功能了。

(4)第四个版本

http://code.google.com/p/blogs-to-wordpress/issues/list中看到有人提要求,希望实现新浪,qq空间等搬家到wordpress。关于这点,之前就考虑过,之前没折腾,主要是因为:

a。精力有限,忙于折腾百度和网易的搬家的实现。

b。之前已经有人实现了此功能:新浪博客搬家WordPress

c。自己之前不需要此功能

不过,此处,还是打算,再花些精力,把新浪博客搬家到wordpress的功能实现了。

然后就花了几天,实现了这个v4.0,支持新浪博客搬家了。

此部分,总得来说,难度不是很大,但是还是有很多技术细节需要处理的。

尤其是BeautifulSoup的一些bug等,花费了不少时间找到规避该bug的方法。

其他的,包括评论数据如何获取等,就是通过抓取网页分析一下,就可找到具体方法了。

(5)第五个版本

同上,实现了某人所希望的,支持QQ空间搬家的功能。

折腾这个,把基本功能实现了,即支持导出帖子的标题,分类,标签,发布时间,内容等,花了大概2,3天,但是后期处理百度的各种变态的编码等问题,以及添加支持各种类型的图片地址的支持等,加上最后的大量的测试,共又花了2,3天。前后一共算下来共花了大概5天时间。

总的来说,难度不大,但是需要再花点精力。

有点难度的事情,主要是python中如何使用好正则表达式re模块,去写单个的pattern,但却能匹配多种不同的地址等,需要对正则表达式比较熟悉才能搞定的。

最后还是感慨一下,百度在QQ空间的技术实现上,真的很变态,详情参见:

【记录】给Python脚本BlogsToWordPress中实现QQ空间搬家到wordpress的功能 + 感慨:QQ空间真的很变态

(6)第六个版本

看到某人说没找到支持人人网搬家到wordpress的,所以就去实现了人人网搬家到wordpress。

添加了基本功能的支持,难度不大,但是需要先去实现登陆模式,因为人人网不登陆,是无法查看博客帖子的。

然后又发现有些公共主页,是可以不登陆,也是可以查看,也就添加了对应的支持导出为wxr。

另外,又花时间去测试了一些个别帖子,其评论多达1000多个,对其全部抓取并处理。

(7)第七个版本

看到有人在百度知道中提及想找CSDN搬家到wordpress,所以,就又花些时间去实现了这个功能。

(8)第八个版本

是看到博客备份工具(Blog_Backup)中,支持很多博客,所以自己就又花点时间,对于搜狐等一些常见的博客,添加了支持。

(9)第九版

主要改变了WXR(XML)文件导出方式,由之前的在全部文章处理完毕,最后一次性导出所有的文章为WXR文件,

改为现在在处理过程中,(当大小超过文件大小限制,默认为2MB的时候)就导出。

因为之前的问题是,如果由于后期某个帖子出了问题,导致前面已经处理过的那么多帖子,都无法导出,还要重来一遍,

现在,可以很大程度的避免此问题了。因为处理过的帖子,加起来要导出的内容超过大小限制,就会及时导出。

这样最坏情况,也最多就是最近一些处理过当的帖子,没有及时导出而已。

(11)第十一版

先是去添加了博客大巴的支持,详见:记录为BlogsToWordPress添加Blogbus支持

后来又去添加了新版百度空间的支持,详见:记录给BlogsToWordPress添加新版百度空间的支持 + 吐槽新版百度空间

(12)一是把子模块都移至子文件夹,使得逻辑和架构更加清晰。因为东西要做得好,不光是外在好用好看,内在也要逻辑清晰才行。

二是由于有人希望导出新版百度的私人的帖子,所以又去增加了对于新版百度空间的登陆模式和更新帖子的支持。

(13)为了方便用户,不需要再去下载安装chardet,所以把chardet集成进去了,发布了v13.8

后来又更新人人网的登陆模式,支持手动输入验证码登陆。

(16)详见:

【记录】为BlogsToWordPress添加点点轻博客(BlogDiandian)的支持

【记录】为BlogsToWordPress添加天涯博客(BlogTianya)的支持

 

BlogsToWordpress的相关数据

代码量

此脚本,算是在163-blog-mover.py和hi-baidu-mover_v2.py的基础上,自己一点点实现的。

不过呢,现在最新版本的代码中所包含的原先代码,大概不超过2%,可以说是>98%的内容,都是自己一点点从无到有实现的,所以可以说是绝大部分都是自己实现的。

现在BlogsToWordpress的全部代码,加起来的话,估计差不多有近5000行,基本上算是原先两者之和的10倍左右。

工作量和技术难度程度

其实,了解软件的都知道,代码量,不能准确反应出背后的工作量和技术的难度程度。

对于脚本的工作量和技术方面的难度程度,大概评估一下,可以算是:

如果最开始的163-blog-mover.py和hi-baidu-mover_v2.py的工作量和技术难度,都加起来,算是3个人工时的话,

那么三个版本:

(1)不支持登陆模式的第一个版本

工作量和难度,大概有30个人工时.

即,如果说,写163-blog-mover.py和hi-baidu-mover_v2.py需要花费3天的话,写出第一个脚本,至少需要30天=1个月。

其中太多细节和技术难点需要处理,主要精力花费在:

A。分析网页源码,以搞懂评论内容是如何获得的,即分析如何去提交对应的url以及相关的机制。如何提交评论地址,一点点获得所有的评论的内容。

B。获得了返回的评论的原始信息,如何解析处理,获得WXR中所需要的信息。这部分,最消耗时间,太多细节,需要一点点处理。太多评论中的异常的内容,需要考虑。

C。对于处理图片的部分,花费了巨大的精力。主要包括,如何写出一个完美的可以捕获到所有的可能的类型的图片地址,然后如何去下载对应的图片,接着再替换图片。关于用正则表达式re模块去写pattern的话,遇到了各种可能,测试了N个博客,改了N个版本,花了很多的精力和时间。

(2)支持登陆模式的和支持修改帖子的第二个版本

工作量和难度,在第二个版本的基础上,大概有15个人工时。

即在第二个版本的技术上,还需要花大概半个月才可以搞定。

其中主要精力花费是:

A。用IE9或chrome去分析网页登陆的背后逻辑,主要是相关的cookie的来龙去脉。

B。实现了登陆代码后,再去检测是否是登陆的是自己的博客。

C。抓取网页过程,分析发帖的逻辑。

D。实现修改帖子的代码,并测试多个博客,再修补一些bug或遇到特殊问题如何处理,比如遇到敏感词无法修改的帖子,自动跳过等。

总之,这部分,由于有了之前C#下面搞懂的网页登陆的一套逻辑,所以,实现起来,相对技术难度不是那么高,但是还是要花很多时间分析和实现相应代码的。

(3)最后的框架式的第三个版本

工作量和难度,大概有10个人工时.

即在第二个版本的基础上,还要再花个10天左右。

主要精力花费:

A。整理分离出框架代码:BlogsToWordpress

B。整理好子模块的代码,BlogBaidu,BlogNetease,以及自己的python库:crifanLib.py

C。全部代码都OK了,也要做前后加起来有10多个博客的测试,确保都是可以工作的。

这部分,总的来说,没太大技术问题,但是需要花时间和精力整理出来,以及做最后的测试。

(4)第四个版本

在v3.0的框架已经弄好的基础上,算是花了3天左右的时间,搞定了支持新浪博客搬家。

这部分,主要精力花在:

a。解决beautifulSoup的bug上面

b。支持图片下载功能,花了不少时间,主要是re模块的pattern很难弄出完美的,所以暂时只支持sina自己博客的图片,暂不支持其他地址的图片了。

c。自己找了N个博客,测试了各项功能是否OK

(5)第五个版本

v5.5的精力花费:

a。添加基本功能

b。支持各种图片地址及规避百度变态的编码等设计问题

c。大量的测试

大概花了5天时间。

 

对于v5.6中,解决了sina博客的帖子的评论有时候无法获取全部的bug。

下面是一些测试数据:

帖子1:http://blog.sina.com.cn/s/blog_4701280b0101854o.html

所用命令:

BlogsToWordpress.py -f http://blog.sina.com.cn/s/blog_4701280b0101854o.html -l 1 -x 20971520

评论数目:20912个

所花费的时间:

———————————————————————-
Total Processed [0001] posts, averagely each consume seconds=1078.0930
Total Consume Time: 00:17:58
  Find 1stLink: 00:00:00
  Process Post: 00:11:47
      Fetch   Pages     : 00:00:00
      Process Pictures  : 00:00:00
      Process Comments  : 00:11:37
      Translate Name    : 00:00:05
  Export Head : 00:00:00
  Export Posts: 00:06:08
  Export Foot : 00:00:00

 

帖子2:http://blog.sina.com.cn/s/blog_4701280b0102e0p3.html

所用命令:

BlogsToWordpress.py -f http://blog.sina.com.cn/s/blog_4701280b0102e0p3.html -l 1 -x 41943040

评论数目:37463个

所花费的时间:

Total Processed [0001] posts, averagely each consume seconds=2835.3740
Total Consume Time: 00:47:15
  Find 1stLink: 00:00:00
  Process Post: 00:22:23
      Fetch   Pages     : 00:00:00
      Process Pictures  : 00:00:00
      Process Comments  : 00:22:14
      Translate Name    : 00:00:03
  Export Head : 00:00:00
  Export Posts: 00:24:49
  Export Foot : 00:00:00

(6)第六个版本

共大概花了3天时间,精力花费:

(1)实现基本功能,基本上1天就实现了:1.0天

(2)花时间调试,处理个别特殊的帖子,其编码也是有问题,只能特殊处理才可以:0.5天

(3)添加了支持所有评论(测试过1000多个的):0.5天

(4)支持了登陆模式(登陆并导出自己的人人网日志),非登陆模式(page模式,可导出一些不需要登陆即可查看的公共主页的日志),查看朋友模式(登陆自己的人人,但导出朋友的日志):0.5天

(5)测试了十多个人人网,加起来有好几百个帖子,N个评论:0.5天

(7)第七个版本

大概花了2天时间

(1)用1天实现了基本功能

(2)剩下一天用于测试,测试中发现了几个bug,以及一些个别博客特殊,需要修bug和加上特殊处理。

难度不大,但是对于CSDN博客,也发现一些变态的地方。

其博客帖子,最新的那几个,其下一篇,不是正常的按照时间顺序的下一篇,而是都变成了博客最早的那篇帖子。

本来这种希望读者可以多浏览你CSDN博客的帖子的做法,如果只是最新一篇帖子是这样处理的,那是可以理解的。但是却是最新的好几篇,甚至好多篇帖子,其下一篇都是最早帖子,那就是脑子进水的做法了。

(8)第八个版本

大概花了2天时间:

(1)1天时间了基本功能。

(2)剩下大半天,主要就是处理搜狐中,一些比较变态的事情,主要是blog content部分,包括了很多额外的垃圾内容,主要是:

精彩阅读 , 更多阅读 , 更多文章推荐阅读,体验新版博客,分享到搜狐微博,分割线clear,上一篇,下一篇等。

因为正常的博客,其设计出来,一般都是博客的帖子的内容与这帖子内容有关,但是非帖子内容本身的,则肯定是不同的div,不同的段落,而搜狐设计出来的博客帖子内容,通过Beautifulsoup处理后得到soup,再

foundContent = soup.find(id=”main-content”);

而得到的foundContent ,却包含了上面那些垃圾内容,导致处理起来,很是麻烦,要写出合适的pattern去再去用re.sub以去除这些内容,而且还要兼容不同格式,很是麻烦。

另外,其中很多搜狐的博客帖子,比较早期的一些,很多帖子是没有上下篇的,导致也是需要全部获取文章url列表,以得知下一篇的url,所以也是很费事。总之,搜狐博客设计的,也是尼玛够变态的。

(9)第九版

花了大概1天时间

主要是调整代码的框架结构,比较麻烦些。代码弄好后,经过基本测试,都OK了。

而且还测试了整体处理速度,原以为会慢,但是实际上还略快5%-10%。

(10)后续琐事不再赘述。

 

所支持的功能

原先脚本只支持最基本的提取帖子的标题,内容,分类,(部分)评论等。

而现在所实现的BlogsToWordpress的第三个版本,全部列出来,大概有:

1.支持输入的地址,是多种格式的。

2.支持处理全部评论

3.支持登陆模式 –> 可以导入私人日志了

4.支持登陆模式下的修改帖子内容->可以给原先帖子中添加搬家声明等内容

5.支持处理图片->下载图片,并替换相应地址:就像最近一些博客,比如QQ空间,百度空间等所支持的,你发布帖子的时候,自动检测出其他图片,问你是否要在发帖的同时,上传图片到你的空间的那个功能。

6.支持处理(其他网站的图片) –> 可以处理其他网站的图片了

7.支持本博客的和其他网站的图片地址替换时候的,自定义所要替换为的图片地址

8.是否自动忽略处理那些图片,该图片地址和之前已经处理过但出错的图片地址类似 –> 以节省时间

9.是否启用google翻译->用于生成WXR中的post title name,即wordpress中发布帖子的固定链接permanent link,可以通过启用google翻译,自动将标题翻译为英文,然后处理为有效的链接地址,这样导入到wordpress后,自动就有了固定链接了

10.支持自定义导出的帖子的地址的前缀

11.支持自定义所输出的WXR文件最大的大小值->导出WXR时,如果超出此大小,则会自动分割,避免了还需要额外的其他XML分割工具来分割了。

12.可自定义所要处理的帖子的类型,包括publicOnly,privateOnly,privateAndPublic

13.对于每种类型的帖子,具体如何处理:exportToWxr和modifyPost,即导出为WXR文件,还是修改帖子的内容。

14.是否自动跳过含敏感词的帖子,以避免修改帖子时候,某个帖子出现这类错误,而导致脚本无法继续执行了。

 

以上所有参数,都支持开关的特性,即某个功能你不需要,那么就可以传递参数去关闭该功能。

多说一句,正是由于功能太多了点,参数名字也太多,导致参数的缩略字母,都很容易互相冲突,搞得在定义哪个参数用哪个字母,都纠结了一番。。。

 

更多内容,请参考脚本的-h参数所输出的帮助信息。

BlogsToWordpress功能简介

本BlogsToWordpress脚本支持两大类功能:

1. 将博客内容导出为WXR文件

用于将WXR导入到wordpress中,实现博客搬家的功能

其中,对于导入为WXR,又可以分两类:

(1) 非登陆模式

没有提供用户名和密码的情况下,对于访问一个博客,那当然只能查看对应的公开的发表的帖子了。

因此也只能处理对应的公开发布的帖子。

(2) 登陆模式

在提供了用户名和密码的情况下,支持登陆对应的博客,然后可以根据设置,处理相应类型的帖子。

主要包含两类,一类是处理公开发表的帖子,将这些帖子导出为publish类型的,这样导入Wordpress后,就是对应的已发布的类型的帖子了。

另一类主要是,对于有些博客中,包含有些私人类型的帖子

(百度空间中,会显示出“该文章为私有”;

网易博客中显示出“私人日志”)

将这类帖子,导出为private,这样,导入wordpress后,其帖子属性就是private了,就不会公开发布出来,可以在:

文章 –> 所有文章 –> 私密,中看到对应的私人的帖子。

2. 修改帖子内容

用于在博客搬家之后,给原先博客中的每个帖子,添加对应的搬家声明类的文字说明。

其他一些说明

1.已经在wordpress官网中的 zh-cn:导入内容 中添加此链接,以方便想要搬家的人找到这里。

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (149)

  1. 不知道你能不能实现点点到wordpress的搬家,因为点点支持大部分博客的搬家,可以把点点作为中间工具搬家到wordpress,因为其他博客到点点搬家格式等等支持都很不错。
    northcamel12年前 (2012-09-25)回复
    • 这个,可以有,等有空再添加对于点点的支持。 话说,你要不说,之前还真木有听说过有点点轻博客这个东西呢,呵呵。 另,据我所知,对于博客搬家支持的比较好的,算是网易博客了: 功能很早就推出了; 支持博客类型也很多; 功能很全,好像评论也都可以搬过去的。 去看了点点博客搬家的介绍,对于支持独立域名这点,我觉得的确不错。 不过貌似搬家不支持评论吧?这点,可是很多人也都很在乎的。
      crifan12年前 (2012-09-26)回复
  2. 新浪搬家出现错误 LINE 1511 : INFO Your process type of post is: Export post to WXR(WordPress eXtended Rss). LINE 1556 : INFO Source URL: http://blog.sina.com.cn/u/1926484744 LINE 1695 : INFO Your blog provider : Sina Blog. LINE 1399 : INFO Extracted Blog user [1926484744] from http://blog.sina.com.cn/u/1926484744 LINE 1400 : INFO Blog entry url is http://blog.sina.com.cn/u/1926484744 LINE 1378 : INFO Username and/or password is null, now in un-login mode. LINE 1561 : INFO Now start to find the permanent link for http://blog.sina.com.cn/u/1926484744 LINE 1565 : INFO Found the first link http://blog.sina.com.cn/s/blog_72d3d3080100paxe.html LINE 1434 : INFO Generated WXR safe username is 1926484744 LINE 1587 : INFO Generating wxr head info ... LINE 1291 : INFO Get blog head info OK LINE 1047 : INFO Generate wxr header OK LINE 1591 : INFO Generating generator info ... LINE 1069 : INFO Generate generator OK LINE 1595 : INFO Generating tail info ... LINE 1084 : INFO Generate tail OK LINE 816 : INFO [0001] http://blog.sina.com.cn/s/blog_72d3d3080100paxe.html LINE 892 : INFO Title = 锐捷 FAST FW548R 路由器配置笔记 LINE 905 : ERROR Can not extract post content for http://blog.sina.com.cn/s/blog_72d3d3080100paxe.html ! LINE 1803 : ERROR Unknown Error ! Traceback (most recent call last): File "BlogsToWordpress.py", line 1801, in main(); File "BlogsToWordpress.py", line 1603, in main infoDict = fetchSinglePost(permalink); File "BlogsToWordpress.py", line 906, in fetchSinglePost sys.exit(2); SystemExit: 2
    northcamel12年前 (2012-09-25)回复
    • 我这里是可以正常处理你的博客的帖子的:
      xxxxxxxxxxxxxxxxxxx>BlogsToWordpress.py -s http://blog.sina.com.cn/u/1926484744 Imported: crifanLib, v2.3 Imported: BlogNetease, v1.4 Imported: BlogBaidu, v3.3 Imported: BlogSina, v1.5 Imported: BlogQQ, v1.8 Imported: BlogCsdn, v1.0 Imported: BlogSohu, v1.3 LINE 1464 : INFO 版本信息:v13.9 LINE 1465 : INFO 1.如发现bug,请将日志文件和bug截图等信息发至:admin(at)crifan.com LINE 1466 : INFO 2.如对此脚本使用有任何疑问,请输入-h参数以获得相应的参数说明。 LINE 1467 : INFO 3.关于本程序详细的使用说明和更多相关信息,请参考: LINE 1469 : INFO BlogsToWordPress:将百度空间(新版和旧版),网易163,新浪Sina,QQ空间,人人网,CSDN,搜狐Sohu,博客大巴Blogbus等博客搬家到WordPress LINE 1470 : INFO https://www.crifan.com/crifan_released_all/website/python/blogstowordpress/ LINE 277 : INFO -------------------------------------------------------------------------------- LINE 1511 : INFO Your process type of post is: Export post to WXR(WordPress eXtended Rss). LINE 1556 : INFO Source URL: http://blog.sina.com.cn/u/1926484744 LINE 1695 : INFO Your blog provider : Sina Blog. LINE 1399 : INFO Extracted Blog user [1926484744] from http://blog.sina.com.cn/u/1926484744 LINE 1400 : INFO Blog entry url is http://blog.sina.com.cn/u/1926484744 LINE 1378 : INFO Username and/or password is null, now in un-login mode. LINE 1561 : INFO Now start to find the permanent link for http://blog.sina.com.cn/u/1926484744 LINE 1565 : INFO Found the first link http://blog.sina.com.cn/s/blog_72d3d3080100paxb.html LINE 1434 : INFO Generated WXR safe username is 1926484744 LINE 1587 : INFO Generating wxr head info ... LINE 1291 : INFO Get blog head info OK LINE 1047 : INFO Generate wxr header OK LINE 1591 : INFO Generating generator info ... LINE 1069 : INFO Generate generator OK LINE 1595 : INFO Generating tail info ... LINE 1084 : INFO Generate tail OK LINE 816 : INFO [0001] http://blog.sina.com.cn/s/blog_72d3d3080100paxb.html LINE 892 : INFO Title = windows里面ipconfig /all命令,理解无线网卡和以太网卡 LINE 816 : INFO [0002] http://blog.sina.com.cn/s/blog_72d3d3080100paxe.html LINE 892 : INFO Title = 锐捷 FAST FW548R 路由器配置笔记 LINE 558 : INFO Create dir D:\tmp\tmp_dev_root\wordpress\to_wp\BlogsToWordpress\BlogsToWordpress\1926484744\pic for save downloaded pictures of own site LINE 563 : INFO Create dir D:\tmp\tmp_dev_root\wordpress\to_wp\BlogsToWordpress\BlogsToWordpress\1926484744\pic\other_site for save downloaded pictures of other site LINE 601 : INFO Processed picture 1: http://s5.sinaimg.cn/mw690/6ddf3144n9bc513d05194&690 LINE 601 : INFO Processed picture 2: http://s11.sinaimg.cn/mw690/6ddf3144n9bc51779d3ba&690 LINE 601 : INFO Processed picture 3: http://s14.sinaimg.cn/mw690/6ddf3144n9bc51a3b4b8d&690 LINE 601 : INFO Processed picture 4: http://s3.sinaimg.cn/mw690/6ddf3144n9bc5213d90e2&690 LINE 601 : INFO Processed picture 5: http://s12.sinaimg.cn/mw690/6ddf3144n9bc5298f57cb&690 LINE 601 : INFO Processed picture 6: http://s12.sinaimg.cn/mw690/6ddf3144n9bc5325c1e2b&690 LINE 601 : INFO Processed picture 7: http://s16.sinaimg.cn/mw690/6ddf3144n9bc53cd5296f&690 LINE 816 : INFO [0003] http://blog.sina.com.cn/s/blog_72d3d3080100paxm.html LINE 892 : INFO Title = DOS小操作 LINE 816 : INFO [0004] http://blog.sina.com.cn/s/blog_72d3d3080100payl.html LINE 892 : INFO Title = 加深对IP地址、子网掩码、默认网关、DSN服务器的理解 LINE 601 : INFO Processed picture 1: http://s5.sinaimg.cn/mw690/6ddf3144n9ba06a984184&690 LINE 601 : INFO Processed picture 2: http://s9.sinaimg.cn/mw690/6ddf3144n9ba098ee9958&690 LINE 601 : INFO Processed picture 3: http://s15.sinaimg.cn/mw690/6ddf3144n9bc069bacebe&690 。。。。。。。。。。。。
      不知道你是怎么使用的。 另,如果你第一次就给出你使用此脚本所用的命令,那么很明显会有助于尽快解决你的问题,你说是不是?
      crifan12年前 (2012-09-25)回复
      • 我用的ubuntu系统,QQ空间正常提取,新浪就出现上面错误,用的命令是 python BlogsToWordpress.py -s http://blog.sina.com.cn/u/1926484744 不知道哪儿出了错误?
        northcamel12年前 (2012-09-25)回复
      • 在winxp里面成功了,也许是我的linux里面的环境没配置好,导致了上面的错误。等没事研究下python。谢谢你!
        northcamel12年前 (2012-09-25)回复
  3. 用过了,终于把QQ空间的日志转到我的博客了,蛮不错的工具,赞一个。不过直接转QQ空间日志出去尝试了很多次都没能完全转成功,最后,我换了种方式,先搞到网易博客,再从网易博客搞出来,最后成功了,还不错。支持下博主。
    鸟嘌呤12年前 (2012-09-15)回复
  4. 您好 如果源空间地址中包含中文 这种情况下该如何处理?比如百度空间用户名就可以是中文
    cozyberry12年前 (2012-08-17)回复
    • 这种情况下,可以正常处理,因为即使你用户名是中文名,那么你的百度空间的首地址,也是编码后的地址,即中文名被替换为%xx的形式了,所以是可以正确处理的。 本身用户名是中文,需要使用登录模式的,即提供了 -u 中文用户名 -p yourpassword的形式的,目前没遇到过。如果你有这种特殊的需求,可以给我个测试的账号和密码,我帮你测试测试。
      crifan12年前 (2012-08-17)回复
  5. 你好,昨天我用你的脚本备份了,今天搭建了本地wordpress。通过rss工具导入,但是发现有的文章导入数目失不正常,开始以为是备份不完整,但是查看xml文件后发现是完整的,于是我试着到我的在线wordpress测试了下,导入文章数目是正常的,而且对比后明显发现本应该是有100多篇的xml,在本地导入却显示导入成功5篇,很纠结,不知道哪里出问题了,想在在想解决办法,
    ksharpdabu12年前 (2012-08-15)回复
    • wordpress版本都是一样的,3.4.1,呵呵,这应该不算是脚本问题的范围了,脚本是没问题的,不知道是不是本地服务器的设置,再去试试
      ksharpdabu12年前 (2012-08-15)回复
      • 可以参考: 【已解决】使用wordpress importer导入WXR时出错:Failed to create new user for XXX. asign to the current user https://www.crifan.com/wordpress_importer_failed_to_create_new_user_for_asign_to_the_current_user/ 去把 wp-content\plugins\wordpress-importer\wordpress-importer.php 中 define( ‘IMPORT_DEBUG’, false ); 改为 define( ‘IMPORT_DEBUG’, true ); 其会显示全部的调试信息。 然后去重新删除之前已导入的帖子,重新导入一下,就可以看到全部的导入过程中的调试信息了,就可以知道哪里出错了。
        crifan12年前 (2012-08-15)回复
  6. LINE 1770 : ERROR Not support for new baidu space login mode !
    today12年前 (2012-08-15)回复
    • 有此提示,是正常的,因为目前的确不支持新版百度空间的登陆模式,即不支持新版百度空间,给定了用户名加密码方式去修改帖子的模式。 但是是支持正常的,不需要用户名和密码的,导出帖子的,比如: BlogsToWordpress.py -s http://hi.baidu.com/new/todayz
      crifan12年前 (2012-08-15)回复
      • 呵呵,多谢博主即时解答,但空间中有一些非登录不可见的贴子,现在真痛恨百度的态度,不顾用户的声音一意孤行
        today12年前 (2012-08-15)回复
        • 那你暂时就只能把那些帖子设置为公开,然后以非登陆模式都下载下来,然后再登陆百度,把帖子设置为私有,虽然麻烦点,但也是一种办法。 如果不是很急,可以等几天,我去尽快实现相关支持新版百度登陆模式的操作。
          crifan12年前 (2012-08-15)回复
    • 已发布v12.8,添加支持新版百度的登陆模式了。
      crifan12年前 (2012-08-21)回复
  7. 先赞一个!看了文章,感觉功能很强大,支持面也很广。三个想法。 1、这么好的工具,建立社区来维护更好。现在proof of concept已经没有问题,也有若干范例。楼主主要抓下架构,让更多的人参与更新针对某个平台的细节。目前这个工具好像主要依赖网页的解析。用户换模板,平台升级,都会造成影响。能支持这么多平台,后面肯定花了不少时间去折腾。 2、像人人这样的平台,目前有开放api。通过api抓数据,格式统一,没有解析问题。不过返回数据好像默认把html的元素滤掉了,还没仔细研究有无参数使得返回完整日志。另外api有些限制,比如调用次数等等。算是一个可以考虑的点吧。 3、前面好像有同学提到过了,就是将wordpress同步到其他平台。虽然有单独的实现,但能统一到一个脚本的话,能提供不少方便。geek user还可以对转发规则做一些定制,更灵活。我的百度空间和人人帐号陆续被封。越来越觉得这些搞平台的都不是好鸟,得把内容放到自己可控的区域。幸好之前写脚本保存过百度和校内的日志,还可以恢复;百度空间的图片都丢完了。把这些平台当作主存储媒介,确实不是一个好主意。不过它们social的功能是不错的,通过它们建立起来的social graph,传递信息,才能体现价值。以自己的wordpress为中心,通过统一的接口写入其他平台,这样就比较理想了。
    Hu, Pili12年前 (2012-08-13)回复
    • 1.所谓社区维护,那也就是多人参与,共同开发而已。我目前已经这么做了,代码是放在google code上的,感兴趣的,联系我,我自然会将其加为开发者。只是目前没人感兴趣。就我自己,呵呵。 关于换模板的事情,有几种可能的结果: (1)换了模板仍然支持 A。有些博客,比如百度,从某些模板,换位其他某些模板,也还是支持的。 我已经验证过了。 B。换了其他常见的模板,而该模板是我已经测试过的,所以仍然支持 其中,我对很多博客的常见模板,都已经做了足够多的测试。不能支持的情况,相对比较少。 (2)换了模板而导致不支持了 有多种选择: A。要么等待脚本更新以支持你这个模板 B。要么麻烦你手动进入博客后台设置一下,换个常见的模板,这样脚本就支持的了。 其实,B选项,对于绝大多数人,遇到此问题的话,为了博客搬家,只是手动设置一下模板,应该不算麻烦吧? 2。对于个别博客,比如你说的人人,如果利用其开发的api,很难实现所有的需要的功能,比如图片的下载和地址替换等,所以不实用,也不适用于我此处的架构。 所以,暂时就没有太多考虑的必要。 不过的确是个很好的提醒,万一以后有其他需求,如果利用已有api来的更高效,也是一种不错的选择。 3.将wordpress同步到其他平台,这是属于wordpress相关的功能需求,和我博客搬家,没啥关系。 而我暂时没此需求,所以暂时不会考虑去实现这个。以后需要用到了,可能会折腾这方面的。 毕竟,我一个人精力有限,不可能满足所有人提出的所有需求,暂时只能满足其他人提出的需求,正好我本身也有意向要做的,才会花时间和精力去折腾的。
      crifan12年前 (2012-08-13)回复
  8. 想问一下,新版的百度blog如何导出呢
    xiaolu zhang12年前 (2012-07-19)回复
    • 暂不支持。不过巧的是,我正打算,最近几天,添加这部分的功能的。你稍微等待几天,应该就能看到新版本中支持此功能的。
      crifan12年前 (2012-07-19)回复
      • 那实在太好了~~ 期待ing~~
        xiaolu zhang12年前 (2012-07-19)回复
        • 你的空间地址是多少?到时候顺便先帮你的新空间测试测试,呵呵。 已经找到了,应该是这个:http://hi.baidu.com/new/dannie007zxl
          crifan12年前 (2012-07-19)回复
          • 呵呵,就是这个。。。。
            xiaolu zhang12年前 (2012-07-19)回复
    • 新版的百度blog我写了一个迁移程序:http://www.huilog.com/?p=540
      阿辉12年前 (2012-07-27)回复
      • 大概看了下,功能相对比较简单点,只支持部分模板的博客。不过也是辛苦了,呵呵。
        crifan12年前 (2012-07-27)回复
  9. 好东西! 还没使用…… 想博主如果什么时候感兴趣,搞一个同步插件,可以把wordpress的博客同步到各大博客,我知道目前像qq空间,百度空间,人人网,微博什么的都有了,但是如果一个插件就搞定就好了…… 主要是,最让我纠结的是没有可以把wordpress同步到时光网的插件……
    congwong12年前 (2012-05-21)回复
  10. 我也完成搬家了,真的十分感谢~~我最惊讶的是,QQ空间的图片都能正确显示,这太好了!但是并不是全部都能显示,为什么呢?
    Kirais12年前 (2012-04-26)回复
    • 我就是觉得之前别人的工具都不能用,或不好用,才自己写脚本,并且支持图片的,使搬家也不丢失图片的。所以图片能正常显示,这是应该的。并不能全部显示的话,有两种可能,一种图片是没有检测到,另一种是原先该图片本身无法打开的。不论是啥原因,都需要你给我你qq帖子的地址,以及说明是哪张图片,我去调试看看,才知道具体是何原因的,然后再给出解决方法的。
      crifan12年前 (2012-04-27)回复
      • 你看看http://kirais.wordpress.com/2012/04/22/molecular_frontiers_symposium_2012__ntu/ http://user.qzone.qq.com/240064651/blog/1335097386 里面有能正常显示的图片,也有不能正常显示的图片。 对于某张特定图片,有时候能显示,有时候不能。而且似乎是查看次数越多,看不到的几率越大。会不会是QQ空间设置了什么外链限制,防止引用过于频繁? 顺便问一句,你在新西兰吗?我的空间有来自新西兰的访问,我猜是你。
        Kirais12年前 (2012-04-27)回复
        • 我发现有可能是我自己的网速问题。直接看QQ空间也看不到。可以请你帮我看一看http://kirais.wordpress.com/2012/03/04/kenting/和 http://kirais.wordpress.com/2010/07/ 似乎百度的是看不了了吧?QQ的能看到吗?
          Kirais12年前 (2012-04-28)回复
          • 觉我所知,qq空间图片是防盗链,外部是无法正常访问的。 我不在新西兰,在中国。 你的wordpress的那些地址,全部都看不了,不知道是不是被GFW屏蔽了。 没看懂你最后一句的意思。 另,qq空间的图片,你是使用脚本的时候,设置为没有处理图片?所以导入到你的wordpress后,还是用的qq空间地址的图片?所以才会涉及到图片可能无法访问的问题。 如果你的wordpress支持,那最好使用脚本时候,对于原先图片,下载并替换地址,然后下载的图片上传到你的服务器上,这样就可以避免图片无法访问的问题了。
            crifan12年前 (2012-04-28)回复
          • 如果是防盗链,可以把referer关了测试,很多站都可以。对百度空间有效。
            Hu, Pili12年前 (2012-08-13)回复
            • 没看懂你这句话是什么意思。
              crifan12年前 (2012-08-15)回复
              • HTTP头字段,referer。一般防盗链是根据这个字段来判断的。对大部分站点,装浏览器插件把这个字段关掉就可以看盗链的图片了。不过针对搬家的需求来说,治标不治本,还是得替换成本地链接。
                Hu, Pili12年前 (2012-08-15)回复
                • “HTTP头字段,referer。一般防盗链是根据这个字段来判断的。” 这个我知道,否则也就没法用python去下载某些博客的图片了。 “对大部分站点,装浏览器插件把这个字段关掉就可以看盗链的图片了。不过针对搬家的需求来说,治标不治本,还是得替换成本地链接。” 那肯定,搬家的人,至少对于我,肯定不希望博客帖子搬家了,结果图片还留在百度,网易等地方,所以需要下载图片,再传到新的网站上的。 如果不这么做,那还是受原先博客提供商的牵制,而且需要用户装插件才能浏览你的图片,那用户才懒得理你呢,所以还是需要图片搬家的功能。
                  crifan12年前 (2012-08-15)回复
      • 嗯,我没有看到还可以下载并替换地址。大概wordpress.com上的都会被屏蔽吧,我的同学都说上不了。谢谢~
        Kirais12年前 (2012-04-28)回复
        • 本脚本,默认已经开启图片下载和地址替换功能了。 具体用法参考:BlogsToWordPress 的用法的举例说明
          crifan12年前 (2012-04-28)回复
  11. http://hi.baidu.com/xieguang133/ 转到一半就看到光标在闪,我在电脑上也没有找到xml文件,就是在下面就终止了,是什么问题呢? LINE 484 : INFO [0246] http://hi.baidu.com/xieguang133/blog/item/98a44ed351 d36d0c3bf3cf06.html LINE 558 : INFO Title = primary ide master [not detected] Primary Master
    xieguang13312年前 (2012-04-17)回复
    • 可能是网速的问题,今天早上就好了
      xieguang13312年前 (2012-04-18)回复
  12. ”这样,再windows的命令行中,运行下面介绍的对应的命令,就可以正常执行了。“之后究竟要怎样呢?后来我看来类似的工具改变了环境变量,命令行打开工具目录 输入python BlogsToWordpress.py -s http://331694532.qzone.qq.com 但是出错link1197 error can't find the first link for http://331694532.qzone.qq.com link 1443 :unknow error 能详细点告诉我怎么做吗?我对phthon不熟悉。或者帮我一下转换了发给我邮箱好吗? 谢谢
    一直在等待12年前 (2012-04-08)回复
    • 你这里,是不需要输入python,直接用: BlogsToWordpress.py -s http://331694532.qzone.qq.com 就可以了。 关于具体用法,其实我在最开始就已经注明了,请参考这里: BlogsToWordPress 的用法的举例说明 https://www.crifan.com/crifan_released_all/website/python/blogstowordpress/usage_example/
      crifan12年前 (2012-04-08)回复
      • 错误变成link 1201:error must designate the entry url for the first blog item! link 1443:error unknown error. 其实我看过那个说明的,是不是先打开命令行-用CD打开目录,然后再输入命令呢?
        一直在等待12年前 (2012-04-08)回复
        • 是的。 关于你的错误,原因是没有指定帖子入口地址,说明你的输入的"-s http://331694532.qzone.qq.com" 没有正常解析到。 所以你还是复述一下你的详细的操作步骤吧。然后我才好复现你的问题,才好给你解释。
          crifan12年前 (2012-04-08)回复
          • 安装python,放那个库到指定文件夹,打开cmd,输入出CD命令打开工具的目录,然后输入BlogsToWordpress.py -s http://331694532.qzone.qq.com 错误就出现了。
            一直在等待12年前 (2012-04-08)回复
          • 发你邮件了,你还是把生成的log文件发给我,我看看到底问题出在哪里。 【后记】后来,经过调试,是win8下无法正常使用python,无法解析参数,导致上面的问题的。
            crifan12年前 (2012-04-08)回复
      • 博主很用心的做,很用心的写,仔细看下教程的话,基本上没有任何基础的人也都能懂, 不过我想问下关于图片的地址 原本导出后是http://localhost/wp-content/uploads/pic这样子的 那怎么能够换成http://www.xxxxx.com/wp-content/uploads/pic这样子的呢? 虽然说效果是一样的,但下面的更好看点吧,虽然说绝大部分人是不会注意的 技术小白求教,博主会吗
        ma12年前 (2012-06-24)回复
        • 请问你所说的意思是,希望导出的xml中图片地址是你所说的: http://www.xxxxx.com/wp-content/uploads/pic 是吧? 如果是,那么,正如你所说“博主很用心的做,很用心的写,仔细看下教程的话,基本上没有任何基础的人也都能懂” 我已经都写的很清楚了: 本页面最开始的: BlogsToWordPress 的用法的举例说明 https://www.crifan.com/crifan_released_all/website/python/blogstowordpress/usage_example/ 中的: "示例3:用-a添加网站地址前缀和用-w添加对应的图片地址前缀" 已有很详尽的解释了,自己去看吧。
          crifan12年前 (2012-06-24)回复
  13. 使用您的工具,很成功的搬家了一个博客,也从您的描述中学到了很多知识,非常感谢! 有一个奇怪的问题,在尝试搬家http://hi.baidu.com/doubleguan的时候,无论怎样设置,都只能搬家出第一篇文章,这是为什么呢?
    管管12年前 (2012-03-27)回复
    • 我去看了下,你那个百度博客http://hi.baidu.com/doubleguan/blog,里面的任何一个帖子,打开后,都是没有“上一篇:“和”下一篇:”,所以无法解析出下一个页面,才“始终只能处理第一篇”的。看起来像是你用的博客主题很特殊,所以解决办法是,换一个主题,能正常显示出来当前帖子的上一篇和下一篇的,就可以了。
      crifan12年前 (2012-03-28)回复
      • 已经搞定了。十分感谢~ 要在百度空间自己的设置里面把显示上一篇/下一篇功能打开。
        管管12年前 (2012-03-28)回复
82 queries in 0.157 seconds, using 22.26MB memory