最后更新: 2013-08-27
说明:
中使用前必读相关的内容。
2. 想要看该脚本的用法,可以猛击这里:BlogsToWordpress 的用法的举例说明
如何使用BlogsToWordpress
BlogsToWordpress,是用Python语言写的脚本。
目前有两种使用方式:
- 源码:下载对应的Python源码,即Python脚本文件,然后在不同平台下去执行对应的Python脚本
- 对应的文件名是类似于这种:
- BlogsToWordpress_v16.9_2013-03-11.7z
- 可执行文件:下载对应的,对应平台下的可执行文件
- 目前暂时只提供Windows平台下的可执行文件
- 暂时只有x64的exe
- 不支持在x86的系统下运行!
- 以后可能会增加,Linux和Mac平台下的可执行文件供下载使用。
- 名字是类似于这种:BlogsToWordpress_v16.9_2013-03-11_noGUI_windows.exe,其中:
- noGUI:表示目前版本是没有图形界面,即在命令行下运行的程序
- windows:表示是针对Windows平台
- 此可执行文件,其实也就是在上述的,Python的源码的基础上,打包制作出来的,目的是为了方便对于Python不熟悉的人,使用此程序。
- 从原先的,需要安装Python运行环境,再去运行Python,变成直接双击可执行文件,即可运行,无需关系Python环境了。
注:
如上两种形式的文件,下载地址均可以在:
中找到。
下面就再详细说明一下,如何使用上述两种版本的BlogsToWordpress
如何使用可执行文件版本的BlogsToWordpress
提醒:
1.推荐,普通用户,如果是windows平台的,使用此可执行文件的版本,就不用像下面那种去操心安装Python,折腾Python环境了。
目前已经提供Windows版本的,可执行文件的版本的BlogsToWordpress。
意味着,你直接去下载对应的,可执行文件,
比如:
BlogsToWordpress_v16.9_2013-03-11_noGUI_windows.exe
然后直接在Windows的cmd下运行即可。
使用方式是:
和运行Python脚本的方法类似,即:
打开windows的cmd
然后运行此exe,即把:
中的
BlogsToWordpress.py
改为
此处的
BlogsToWordpress_v16.9_2013-03-11_noGUI_windows.exe
即可。
比如,之前是:
BlogsToWordpress.py -s http://hi.baidu.com/rec_music |
现在就改为:
BlogsToWordpress_v16.9_2013-03-11_noGUI_windows.exe -s http://hi.baidu.com/rec_music |
如何使用源码版本的BlogsToWordpress
提醒:
1.如果你用的是Linux或Mac。
由于目前没有提供Linux和Mac的可执行文件,所以,只能用此源码版本的,去使用BlogsToWordpress。
先要去搭建Python的运行环境,然后才可以去运行Python的脚本的。
下面详细解释具体做法:
搭建Python运行环境
此脚本是python语言实现的,而且依赖一些第三方的python库,所以想要使其可以正常运行之前,请确保已安装所需软件及脚本:
安装Python 2.7.2
对于普通的windows XP + x86的系统:
Windows x86 MSI Installer (2.7.2)
下载后,安装即可。
注意,如果是x64的系统,请安装对应的x64的版本:
Windows X86-64 MSI Installer (2.7.2)
其他系统,比如Mac系统,请自行下载对应版本:
Mac OS X 64-bit/32-bit x86-64/i386 Installer (2.7.2) for Mac OS X 10.6 and 10.7
Mac OS X 32-bit i386/PPC Installer (2.7.2) for Mac OS X 10.3 through 10.6
关于Python 2.7更多其他版本可以在官网中找到:
http://python.org/getit/releases/2.7.2/
其对应的ftp下载地址是:
http://www.python.org/ftp/python/2.7.2/
提示:
Python分2.x版本和3.x版本。
此程序是针对2.x版本的,无法运行在3.x版本上。
所以,请务必使用Python 2.x去运行此程序。
所以,上述才推荐你去安装Python 2.7.2
相关知识,感兴趣的,可以参考:
【教程】如何下载最新版的,各种版本的,包括Python 2.x和Python 3.x的Python
【整理】总结Python2(Python 2.x版本)和Python3(Python 3.x版本)之间的区别
[安装Python图形库:Python Imaging Library (PIL)]
注意:此处,只有你是(1)修改网易163的博客帖子;(2)使用人人网的登陆模式去导出帖子,才需要安装此Python的图形库PIL。
换句话说,如果你是处理其他博客,去导出帖子的话,则不需要安装此PIL。
安装方法:
去PIL主页:
Python Imaging Library (PIL)
http://www.pythonware.com/products/pil/
中下载Python 2.7版本所对应的PIL:
http://effbot.org/downloads/PIL-1.1.7.win32-py2.7.exe
下载后,双击安装,一直点击下一步,即可。
提示:
如果修改帖子过程中,显示处理的验证码图片不能正常显示的话,可参考:
【已解决】Python中通过Image的open之后,去show结果打不开bmp图片,无法正常显示图片
Python环境建立好后,就可以在Windows中的cmd中使用本脚本了。
下面的内容,仅供高级用户参考,普通用户可直接无视:
(1)关于chardet库
由于crifanLib用到了chardet库,而之前的策略是需要用户自己去chardet主页下载并安装的。
但是即使是这种最简单的操作,对于熟悉python的人,可能显得也很吃力,所以最新的版本(v13.8),已经将chardet集成到里面了,无需用户再手动下载了。
目前集成的是1.0.1版本的chardet。
当然,如果喜欢折腾的人,可自行下载最新版本的chardet替换原有的1.0.1版本。
chardet下载页面:http://pypi.python.org/pypi/chardet#downloads
下载安装方法:可参考:【已解决】windows下,安装python的chardet
(2)BeautifulSoup
此脚本中利用到BeautifulSoup去解析html等源码,目前经测试,BeautifulSoup-3.0.6.py版本最适合于当前Python 2.7。
同理,喜欢折腾的人,也可以去:
http://www.crummy.com/software/BeautifulSoup/bs3/download/
http://www.crummy.com/software/BeautifulSoup/bs4/download/
下载想要的版本。
使用注意事项
注意: 此处只是注意事项,只会列出,有需要注意的类型的博客。 换句话说,不需要注意的博客,当前就不会列出来了。 所以,请不要再问类似于“为何此处没有提及某某博客?”之类的问题。 关于,所有的支持的博客的用法,都在: |
关于如何在Windows中cmd下使用Python脚本
如果你对,如何在Windows的命令行环境cmd中使用Python脚本,都不熟悉,那么请先去看这里:
如何在Windows下的cmd中运行BlogsToWordpress.py
即,不要把windows的cmd环境,和Python的Command Line搞混了。
目前不支持Win8系统
经过某人的Win8系统下的测试,发现win8的cmd命令行下,不论是Python 2.7还是Python 3.2,都无法识别所输入的参数:
除了原先所用的Python中的OptionParser无法解析参数之外,也试了argparse,还是无法解析参数。
因此,目前结论是,本脚本无法在Win8下面使用。
对于苹果(Mac)系统的用户
注:最新版本已集成chardet,所以无需用户再安装。
对于Mac下运行Python不熟悉的,可以参考这里的图解:
或者参考Yi的文字解释:
For those who are new to Python on Mac,
Installing the packages that the authors mentioned in the blog. The package “chardet” should be pasted to the folder “/Library/Python/2.7/site-packages/” (To go to this fold, right-click/two-finger-click on the icon “Finder”, copy the path, then enter.) .
Open the terminal, type “python” , then drag the file “BlogsToWordpress.py” to the terminal windows, then type the command in the above blog, which is associated with your blog.
then you are good to go.
博客大巴
对于博客大巴的用户,想要知道的是,由于博客大巴的网页内在源码格式比较乱(不同模板,生成不同的格式的源码),导致:
虽然脚本已经兼容了几十种格式,但是仍然,也不可能支持所有的模板,所以需要用户,你:
在使用脚本之前,先去把你的博客大巴的模板,设置为,如下已测试过的博客大巴中模板的,任何一种,均可:
当然,如果你的博客大巴所使用的模板,本身就属于上面中的一种,和上面某人所用的模板一样,那么就不用任何改动了。
而如果如上的各种模板都已经尝试,还是无法正常搬家,运行脚本还是会出错,则再把相关错误信息发给我,我再去帮你添加对应的支持。
百度空间中帖子中无上一篇和下一篇的请注意
请确保所要搬家的百度空间的主题,是可以正常显示帖子的上一篇和下一篇的
百度搬家的人,请确认你要搬家的百度空间中的单个帖子(除了最新的那个和最早的那个之外),显示出来的页面包含有“上一篇”和“下一篇”,否则会导致无法解析出下一篇的帖子,结果就是程序只能导出一个帖子,而无法依次地导出其他所有的帖子。
图示:
对此此点要求,普通的百度空间,都是已经可以正常显示出上一篇和下一篇的,部分用户是由于自己设置的原因,导致不能显示出上一篇和下一篇,请自行更改对应设置即可。
新浪博客评论特别的人需要注意的事情
如果你的博客内容,评论内容太多,多到像韩寒新浪博客那种,有些帖子评论都狂多的:
http://blog.sina.com.cn/s/blog_4701280b0101854o.html -> 2万多个评论
http://blog.sina.com.cn/s/blog_4701280b0102e0p3.html -> 3万多个评论
导致单个帖子导出的数据,都在20M,40M之类的大小,那么你使用此脚本的时候,就要通过-x设置导出的单个WXR文件大小,要超过这个值,比如对于上述的:
http://blog.sina.com.cn/s/blog_4701280b0101854o.html -> 2万多个评论
实际导出的文件大小在17MB左右,那么对应用法就是:
BlogsToWordpress.py -f http://blog.sina.com.cn/s/blog_4701280b0101854o.html -l 1 -x 20971520
其中20971520=20M
当然,对应的wordpress中的设置,上传文件大小的限制,也要同步改成不小于你上述的大小。
具体设置可参考:
其实,一般人,也很少会遇到这种问题,所以,用默认设置即可。
即不指定-x参数,而用默认的2097152=2MB,也就足够了。
不要把输入参数时候的短横线写成了中文输入状态下的短横线
正常的使用(任何)脚本,给定参数,都是英文字符短横线’-’,然后加上对应字母,比如此处的:
BlogsToWordpress.py -s http://331694532.qzone.qq.com |
其中字母s前面那个字符是短横线,是英文字符短横线。
正常直接结果是这样的:
如果不小心把英文字符短横线,(在中文输入法下面)输入成了中文字符的短横线’-’:
BlogsToWordpress.py -s http://331694532.qzone.qq.com |
那么就会出现错误:
LINE 1201 : ERROR Must designate the entry URL for the first blog item ! LINE 1443 : ERROR Unknown Error ! |
对应截图为:
请使用者,注意一下,不要出现这类错误。
话说,一般人,也很少会遇到这类错误。毕竟能用得到python去做博客搬家的人,应该或多或少都会命令行,还有点熟悉的。这类错误,也应该很少犯的。不过还是需要不了解的人注意一下的。
FAQ常见问题
Q:错误: ERROR Can not find the first link for http://user.qzone.qq.com/xxx/blog/, error=Unknown error!
A:
原因:
QQ空间被设置了,陌生人(其他非登陆的QQ用户),无法访问。
所以,当别人,包括用此我的工具,访问该页面时,会出现这样的情况:
“您访问的空间需要权限,请先登录”
解决办法:
办法1:登陆你的自己的QQ,把你的QQ空间的访问权限,设置为公开的,任何人,(不登陆QQ的情况下)都可以访问。
这样,我的脚本,才能打开你的QQ空间,才能帮你把内容抓取下来。
当然,不想让你的QQ空间给其他人看的话,那就,等你使用完毕我的工具,再去把QQ空间访问权限改回去,即可。
办法2:
使用脚本时,加上对应的用户名和密码。比如:
你之前用的是:
BlogsToWordpress.exe -s http://user.qzone.qq.com/xxx/blog/ -w xxx |
那就改为:
BlogsToWordpress.exe -s http://user.qzone.qq.com/xxx/blog/ -w xxx -u yourQQNumber -p yourQQPassword |
Q:错误:Must designate the entry URL for the first blog item !
A:原因:没有指定要处理的博客地址,所以当然报错。
解决办法:
参考:
指定对应的-s或-f。
Q:错误:from string import Template,replace, Import Error:cannot import Template
A:原因:
你安装了Python 3.x版本的。我的此python脚本,不支持Python 3.x。
需要你,参考:
BlogsToWordPress使用前必读 -> "搭建Python运行环境" -> "安装Python 2.7.2"
去安装Python 2.x,最好是Python 2.7。
Q:对于QQ空间的某些帖子,为何只能获取部分的评论数据?
A:那是因为QQ空间本身设计混乱,评论数据中所包含的编码太混乱,导致正常所能想到的解析的办法,都还是无法解析,所以只能丢弃此包含混乱编码的的评论,只能得到已经解析到的部分的评论数据。
关于QQ空间的设计,很变态,很混乱,详情可参考:
【记录】给Python脚本BlogsToWordpress中实现QQ空间搬家到wordpress的功能 + 感慨:QQ空间真的很变态
Q:为何处理到有些帖子的时候,就死掉了?以及无法保存之前已经正常处理的帖子的问题。
A:很多时候,往往是网络断了,或者是处理某个本身有问题的图片,无法下载等问题,导致程序在处理某个帖子的时候死掉。
对于此问题,目前已知办法:
(1)请自行换个时间段,多尝试几次,一般就可正常导出了。
(2)如果还不行,那么可能是某个图片处理有问题。相应的可以尝试,-f和-l参数组合使用,来规避有问题的帖子。
即,假设处理博客为:
http://hi.baidu.com/serial_story
原先用的是
BlogsToWordpress.py -s http://hi.baidu.com/serial_story
但是在第100篇帖子:
http://hi.baidu.com/serial_story/blog/item/926aeb3f369802cf7d1e7198.html
出了问题,其中该帖子的其下一篇的地址是:
http://hi.baidu.com/serial_story/blog/item/d9f4c2fac0315bd3b58f3134.html
那么可以尝试用:
BlogsToWordpress.py -s http://hi.baidu.com/serial_story -l 99 BlogsToWordpress.py -f http://hi.baidu.com/serial_story/blog/item/d9f4c2fac0315bd3b58f3134.html
即先处理正常的前99篇,再跳过错误的那篇,从其下一篇开始处理以后所有的帖子,以此实现跳过有问题的那个帖子。
其他类似的问题,也有处理的帖子太多,偶尔会在中间某个帖子死掉,所以始终无法处理整个博客的帖子,此时你也就可以通过类似如上的方式,-f指定起始要处理的帖子,加上-l要处理多少个帖子,来一段段处理。
对于之前已经处理的帖子无法保存的问题,暂时只能用上面那个规避的办法:
-f指定起始帖子地址,加上-l参数指定处理多少个帖子,来一段段处理。
以后有空的话,会添加此功能,支持处理帖子同时就导出已处理的内容的。
Q:如果博客帖子过多,有没有可以加快速度的办法?
A:可以考虑以下几个方面,去实现加速处理帖子:
(1)禁止google翻译
可以添加参数 “-g no”,即不使用google功能,这样会大大加快帖子的处理速度。
具体更多解释:
A。因为默认是打开google翻译的功能的,会将帖子的固定链接和分类从中文翻译为英文,方便SEO而已。
B。通过“-g no”关闭google翻译,不会对下载导出的博客的内容有任何影响。
(2)禁止图片处理
如果你本身对于博客的图片,也不需要下载和替换地址的话,那么也可以再添加“-b no”,去禁止处理图片(不下载图片,不替换对应图片的地址),这样,更加可以加速处理帖子了。
(3)禁止处理评论
如果也不需要帖子的评论,那么可以加上参数“-c no”去禁止处理评论,这样也可以省去很多的时间,以达到加速帖子处理的目的。
上面这几个参数,是相对最耗时的,加上这几个参数后,基本上也就算是最大限度的加速帖子处理过程了。
关于本程序的更多功能,细心的人,自己去看脚本使用说明中的各个参数吧。
关于帖子的处理速度,顺便多说一句:
对于别的工具,比如blog_backup,看起来会比我的脚本处理博客内容要快,那是因为其默认所实现的功能中,即没有添加google翻译(固定链接和分类,此部分非常耗时),也没有处理图片(下载图片和替换图片地址,此部分非常耗时),还没有处理博客评论(这部分也比较耗时),因此,看起来,是blog_backup速度相对快而已。
而我的工具,就是为了考虑让更多不太熟悉的人,使用上更傻瓜化,而把常见的,很多人需要的功能,默认都打开了而已,如果你是为了追求处理帖子速度快的话,那么完全可以禁止掉其中这部分功能。
总之,本脚本(默认配置下)处理帖子的速度相对较慢,那是因为开启了更多常用的功能。
如果你想要加快帖子处理速度,那么可以通过添加相应参数,禁止对应功能来实现。