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

记录给BlogsToWordPress添加新版百度空间的支持 + 吐槽新版百度空间

Python crifan 5147浏览 0评论

【记录给BlogsToWordpress添加新版百度空间的支持 】

新版百度空间,虽然是html5,外在清爽了,但是内在也还是有些问题的。

1.返回的评论数据中,是非法的json字符串,导致python中解析json有误,需要手动处理,给key加上对应的双引号括起来,才可以。

具体见:【已解决】Python中用json.loads去解析字符串出错:ValueError: Expecting property name: line 1 column 51 (char 51)

2.个别帖子:

http://hi.baidu.com/hispace/item/387cff8ebf4fa2edb17154aa

中包含的评论数据中,含有非法控制字符“\xBF\xB4\xBC\xFB\xC1\xCB”,导致无法解析。

然后发现,其实本身百度空间自己也都无法解析,所以没有显示帖子任何评论。

而实际上一共应该是96个评论的,其中第15个(index=14)出现问题导致无法解析的。

3.有些帖子竟然无标题。

比如:

http://hi.baidu.com/tmcsyy123/item/68233ec076948cbd0c0a7b18

http://hi.baidu.com/choklk/item/5ef51e23331d77966e2cc329

http://hi.baidu.com/hyzhhyzhhyzh/item/04847eda5cf7933ae2108fd9

后来发现原来都是听歌的帖子。

但是你丫又不是微博,竟然帖子没有标题,搞得还需要另外花很多精力,支持这些无标题的帖子。

 

【添加登陆模式和修改帖子的功能】

1. 最近在去给BlogsToWordpress添加新版百度的登陆模式和修改帖子的功能时,又发现,脚本无法使用了。

因为会找不到帖子标题,调试后发现,结果帖子的class从a-incontent a-title变为了a-incontent a-title cs-contentblock-hoverlink了。

这也才没几天啊,html内容改版的速度,马上赶上QQ了。。。。


【吐槽新版百度空间】

新版百度空间,是所谓的轻博客,好处是,用的是HTML5(可以从html源码标签看出),界面看起来清爽很多。

但是缺点了太多:

1.查看用户的资料等功能,没有了,很不方便。

2.把原先帖子的分类弄没了,取而代之的是变成标签了。

导致想要通过分类查看文章,变成了不可能时间。

因为点击看起来是分类的那个#XXX,实际会跳转到全百度的同一个tag对应的页面,所以当然无法找到自己博客的该分类的帖子了。

3.登陆自己的新版博客后,在“我的的主页”中,竟然找了半天也还没找到在哪里有按钮可以点击发布新帖子。。。。。

最后还是通过官网的介绍如何发布内容?,才知道如何发帖,原来是坑爹的,需要跑到“主页”中,点击“文字”,才可以发帖。。。

4.之前就遇到的那个问题,帖子的评论输入框中,不论是Ctrl+V还是右键粘贴,都无法粘贴内容,只能手动输入。

5.后来的后来,才发现,原来百度升级新版空间,导致了大多数人都很气愤,失去了原有的太多功能和原来的朋友等,但是却也无法升级到旧版空间。

而对于如此多的用户的需求,百度空间的贴吧里面,基本都爆棚了,但百度官网,也没有什么有效的回应。

对此,有人评论道,对于百度空间升级到新版的轻博客,根本不是为了赶时髦而升级的轻博客,而是为了变相逼用户离开百度空间,以此减轻百度的服务器的压力,以此来消减开支,使得百度可以把钱投入到其他更赚钱的领域。

无论如何结果都是:先的百度空间的用户,被狠狠滴坑了一把,却也无处诉苦。。。


【后记 20120808】

最近几天,发现旧版百度空间中,会提示你,让你尽快升级到新版,而旧版很快就要下线了。

然后看到后台设置中,可以提供博客内容打包下载服务,所以就去点击下载了,然后提示我说要等一会,让我5分钟后再过来看看有没有打包好,结果却是隔了很多分钟,回来看了好多次,还是没有打包完成,最后是过了几天,回来看,才打包完成:

download blog

同时,也看到对应提示:

“打包完成,请于48小时内下载数据”

“旧版下线后内容将不能再被访问,为了你与朋友们能够顺利分享精彩内容,建议你花点时间升级新版。 ”

可见,百度,是多么想强制性地,继续地,坑(那些不明真相的)爹的心,有多么急迫。。。

 

另外,去下载下来对应的打包好的博客内容,发现是一堆的的html文件。

入口是:

blog index

对应的博文列表是帖子,相册列表也是html网页,其中图片不是下载到本地的,都还是放在百度的图片服务器上的,地址都是类似这样的:

http://hiphotos.baidu.com/space/pic/item/d376833e388415ff838b1301.jpg


【后记 2012-08-20】

后来再次登陆百度旧版空间,会有提示说,将要在8月下旬,就停止旧版。

意思是说,不管你之前使用百度空间多少年了,不管你里面有多少数据,不管你多么讨厌新版,不想升级到新版,

全部都会在8月下旬强制升级到新版。

被逼无奈,我也就去升级一下。

但是升级过程中,又遇到很变态的事情:

我原先百度空间地址是:

http://hi.baidu.com/love_marriage_family/

新版升级时,使用原先的域名地址love_marriage_family,却无法使用,因为其限制5-14个字母:

love_marriage_family

然后改为love_marriage,却又提示“地址已被使用,请换一个”:

love_marriage

然后也试了其他有意义的地址,结果同上,要么是超过14个字母限制,要么又是重名无法用。

惹急了,写了个rinimabaidu,结果提示“您填写的域名是禁用词” :

rinimabaidu

呵呵,看来百度也知道自己做的烂,不让人家用这些敏感词啊。

总之,在这点上,百度不是一般的变态。

你之前使用的域名升级时,未必可以保留,因为很可能超过14个字母长度,或者是重名无法用。

而即使想要写个新的名字,却也很可能超过长度限制,或者又遇到重名无法用。

总结一下就是,对于百度空间,没有最变态,只有更变态。

问候一下那些产品经理的十八代祖宗。

因为像这样弱智的设计,不是脑残到一定程度,怎么能想的出的!!!

你就是再变态,也可以稍微改一下限制,比如长度不超过20个字母之类的啊,尼玛的!!!


【后记 2012-09-14】

1.用Firefox去登陆新版百度空间后,修改帖子,结果在保存的时候,提示我“非法登陆,请重新登陆”:

非法操作,请重新登录

 

更加证明了,这套新版轻博客,不是一般的烂。

2.无奈重新登陆百度空间,再重新修改帖子,再点击保存,结果又提示“内容包含不合适内容,请检查后再发”:

内容包含不合适内容,请检查后再发

3.不过后来的测试结果表明,之前已经成功发布的内容,只保留其中一部分,该部分中,也是保存非百度链接的,结果是可以发布的:

remove some can post

 

然后反推出来,上面无法发布,应该是帖子内容中包含了“百度”,“吐槽”之类的关键字了,所以才不允许发布的。

4.但是后来又接着去修改帖子,把内容改成和开始时候的一样的内容,结果却又可以发布了:

in end, can post

所以,真的搞不懂,到底新版百度的审核机制和内部工作原理了。。。


【删除新版百度空间帖子的内容】

后来打算通过脚本去modify post,实现将原先百度空间内的帖子的内容,都删除。

结果提交对应的POST操作后,返回的json是:

{"errorNo" : "506","errorMsg" : "非法操作,请重新登录","data": [  ]}

很明显,就是之前遇到的“非法操作,请重新登录”。

然后就是调试,折腾了半天,先后尝试过:

1。添加header:

        headerDict = {
            'x-requested-with'  : "XMLHttpRequest",
            'Referer'           : "http://hi.baidu.com/pub/show/modifytext?qbid="+qbid,
        }

结果还是错误依旧。

2.尝试过换User Agent:

    'constUserAgent' : 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)',
    #'constUserAgent' : "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1",

都还是没用

3.关于此问题,百度上也搜到很多其他人遇到此问题:

为什么我在新版百度空间操作时老是出现“非法操作,请重新登录”这样的提示?

为什么在百度新版空间操作老提示“非法操作,请重新登录”?

【求解】啥叫“非法操作,请重新登录!!”

自定义背景‘非法操作,请重新登录’怎么办?

但是也都没有解决办法。

最多的只是建议重新登陆试试,或者换个浏览器之类的,但是我此处问题是,脚本中出错此错误,

而IE9中在前面也出现过,但是重新登陆就好了,换个FireFox登陆,修改帖子也都是OK的。

所以还是不知道如何解决。

4.以为是我在iE9,Firefox的网页中登陆了,然后Python脚本中就不能再同时登陆了呢,结果去退出浏览器的登陆,然后Python脚本中也还是无法登陆。

5. 这人:

为什么我的百度空间老是出现"非法操作,请重新登录"的提示

是换个时间就好了。

以及这个:

百度空间发布文章。。。。显示非法操作。。。。。请重新登录。。。这是是怎么了。。急求答案

所以,基本上可以确定,就是度娘抽风,或者系统有问题,所导致的。

所以,目前看来,只能换个时间再试试,还是不行的话,就再继续去调试。

转载请注明:在路上 » 记录给BlogsToWordPress添加新版百度空间的支持 + 吐槽新版百度空间

发表我的评论
取消评论

表情

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

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

网友最新评论 (9)

  1. 如何导出百度旧版空间的日志呢。我恢复到新版之后旧版的日志都不见了
    highway12年前 (2013-01-04)回复
    • 1.没办法。 2.这个是百度的时期。 百度之前留个大家(好像是)几个月的时间,供你备份旧的空间的内容。 3.你错过了这个时间,现在没法用旧版了。只能用新版了。 旧版的数据,只能你去问问百度空间的客服,看看能否帮你找到。
      crifan12年前 (2013-01-04)回复
  2. 早就发现渣度越做越差了,空间升级后,经常会说正常的文章有什么不适内容,而文章什么问题都没有!而且还不告你不是在哪儿了,要一个个去找文章!评论还不允许粘贴,别人回复向我要个网址还要一个个输!鸡肋功能增加了一堆,实用功能K的一个不剩!!这哪里是升级,明显是降级!
    梦之翼13年前 (2012-08-25)回复
  3. 哥? 很多文章 找不到TITLE,还报了很多异常... 可以用我的测试下
    guonan13年前 (2012-07-26)回复
    • 弟?很多文章,509篇呢,我刚刚都全部测试了一遍,都可以找到TITLE,而且也没有任何异常。 要不,你也用我的测试一下? BlogsToWordpress.py -s http://hi.baidu.com/new/iguonan 注: 关于脚本的使用方面,这里已经写的很清楚了: BlogsToWordPress 的用法的举例说明 https://www.crifan.com/crifan_released_all/website/python/blogstowordpress/usage_example/ 如果还有哪些不清楚的,可以再问。 附: 如果你遇到此问题,第一次就按照我脚本所提示的: “1.如发现bug,请将日志文件和bug截图等信息发至:admin(at)crifan.com” 把相关错误信息贴出来,而不是直接来了一句,“很多文章 找不到TITLE,还报了很多异常…”,而是把“找不到TITLE”这句话变成对应的错误信息,以及贴出相应的“很多异常”,这样别人也就更加容易清楚的你的问题所在,容易帮你找到问题原因,也就提高了沟通效率,减少无谓的对话,你说呢?
      crifan13年前 (2012-07-26)回复
      • 哥? 我又来了,今天在公司重新测试了下;发现确实没了昨天很多文章找不到TITILE 和异常现象,估计是家里宽带问题。 有几个建议,希望哥在下次发布时候考虑下: 1、断点传输功能; 有时候几千篇文章时候 这点很重要了,可能这个功能不大好实现吧。 2、转储分页。昨天晚上在导出时候,到了几十篇博文后发现 没有Titile给中断了,这样前面导出的全部作废还需重新来过。要是可以实习导出多少篇文章 存储成一个相应的文件,依次类推 那就好了。
        guonan13年前 (2012-07-27)回复
        • 你所建议的这两个功能,从最开始写程序的时候,就想到了。 现在的情况是: 真正的断点传输功能,目前由于技术问题没有真正实现。 但是已经实现了接近于断点传输的功能了: 之前已处理的帖子,除了最近处理的那些帖子外,都已全部导出了。 最近处理的那些帖子,指的是,最近的处理的帖子所生成的需要导出的内容还没有达到需要导出的xml的大小(默认为2MB)。 所以,想要断点传输,只需要找到已经导出的最后的帖子,然后用-f参数去继续处理即可。 对于已导出的最后的帖子的地址,可以通过已导出的最后一个xml文件中最后一个item中,找到对应的帖子的链接。 举例,你博客有1000个帖子,假设每100个帖子能生成2MB的xml,可以导出。 而你在第850个帖子的时候出错了,那么之前的800个帖子,都已经导出过了,生成了对应的8个2MB的xml。 最近的50个帖子,才生成1MB的xml的内容,还没达到导出的2MB的限制,所以没导出,因此会由于中断而丢失。 想要继续断点处理,那么先去第8个xml中找到最后一个item,其中有最后导出的那个帖子的地址, 然后通过 BlogsToWordpress.py -f 最后一个帖子的地址 就可以继续处理了。 (具体用法,可参考: 示例2:用-f指定从某个帖子开始 https://www.crifan.com/crifan_released_all/website/python/blogstowordpress/usage_example/ Q:为何处理到有些帖子的时候,就死掉了?以及无法保存之前已经正常处理的帖子的问题。 https://www.crifan.com/crifan_released_all/website/python/blogstowordpress/before_use/ ) 另外,对于帖子中断,常见原因有: (1)网络不稳定而中断 对于网络偶尔不稳定的问题,程序内部已经做了足够多的有效尝试:对于单个帖子链接的处理,如果出错,最多可重试3次的。 (这样就可以避免由于个别时候网络不稳定而导致程序中断的了) 所以如果超过3次还是无法处理,那说明网络的确有问题了,那就换个时间段再重新试试,或者找个网速更快更稳定的地方再试试。 (2)脚本不支持某帖子(本身内在结构) 如果是本身程序不支持该帖子,那么只有等待下一版本解决bug了。 不过,需要提醒的是,目前我所发布的程序,都是经过足够多的测试,所以对于常见的普通bug,作为使用者的你们,也很难遇到的。^_^ 当然,真的有bug,请报给我,我尽快修正。 关于“转储分页”,请参见上面关于“断点传输”部分的解释。 总结: 1.目前已实现近似于断点处理的功能了。对于遇到中断需要接着处理的人来说,完全可以利用此脚本实现,只是操作上稍微麻烦点而已。 2.以后如果想到了更好的解决办法,再去真正实现断点支持功能。
          crifan13年前 (2012-07-27)回复
91 queries in 0.221 seconds, using 22.15MB memory