免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1871 | 回复: 0
打印 上一主题 下一主题

将blogbus博客搬家至百度空间 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-02 10:42 |只看该作者 |倒序浏览


百度空间的搬家工具不能访问了,只能自己动手搬家.昨天打算用html post的方法进行,最后在验证码的问题上停下了.没办法,只能通过更低级的办法,对IE进行操作的方法进行.这里要用到PAMIE库,我用的是python2.6+pamie2,当然你可以根据自己的版本进行选择.PAMIE可以非常方便的控制IE浏览器,其初衷是用来进行web自动化测试的.整个程序在给博客的内容编辑框处停下了,因为不好通过其id/name获取这个第三方插件的标识,最后,用了另一个办法,才算最终搞定.
需要注意的地方:
1).C:\\Users\\riverbird\\Downloads\\Pam\\backup-20090401230236.xml,这是我备份的blogbus博客的xml文件;
2).http://hi.baidu.com/riverbird/creat/blog/,请将riverbird换成你的空间用户名.
3).C:\\Users\\riverbird\\Downloads\\Pam\\tab.exe,这个tab.exe是我写的一个小程序,主要有两个作用,一是发tab键,将焦点从标题栏转到编辑框,另一个是发ctrl + v消息,就是粘贴了.
4).你大可不必用这个tab.exe程序,更好的替代品是用纯python写的WATSUP和sendkeys,其网站分别为:http://www.tizmoi.net/watsup/intro.html和http://www.rutherfurd.net/python/sendkeys/#binaries,里面有python的替代方案.
5).百度空间里面如果发贴过于频繁,他会提示不能再发了.我将时间设为2分钟左右发贴,证明是可行的.
               
               
                #coding:utf-8
from cPAMIE import PAMIE
import time
import win32clipboard as w
import win32con
import os
#import xml.dom.minidom
from xml.dom import minidom
obj_ie = PAMIE()
def send_text(aString):
    w.OpenClipboard()
    w.EmptyClipboard()
    #w.SetClipboardData(win32con.CF_TEXT,aString)
    w.SetClipboardData(win32con.CF_UNICODETEXT,aString)
    #w.SetClipboardText(aString)
    w.CloseClipboard()
    time.sleep(2)
    os.system("C:\\Users\\riverbird\\Downloads\\Pam\\tab.exe")
    time.sleep(2)
    #w.CloseClipboard()
        
def login(ie):
    ie.navigate("http://hi.baidu.com/")
    #time.sleep(5)
    ie.textBoxSet("username","xxx")
    ie.textBoxSet("password","xxx")
    ie.buttonClick('Submit')
        
def post(ie,title,content):
    ie.navigate("http://hi.baidu.com/riverbird/creat/blog/")
    ie.textBoxSet("spBlogTitle",title)
    #ie.textBoxSet("spBlogText",content)
    send_text(content)
    ie.buttonClick("tj")
def get_title_content(ie):
    dom = minidom.parse("C:\\Users\\riverbird\\Downloads\\Pam\\backup-20090401230236.xml")
    root = dom.documentElement
    nodes = root.getElementsByTagName("Log")
    rc = ""
    lst_title = []
    lst_content = []
    n = 0
    for node in nodes:
            title_node = node.getElementsByTagName("Title")[0]
            content_node = node.getElementsByTagName("Content")[0]
            lst_title.append(title_node.firstChild.data)
            lst_content.append(content_node.firstChild.data)
            print "title:",lst_title[n]
            print "content:",lst_content[n]
            print '---------------'
            if n >= 47:
                post(ie,title_node.firstChild.data,content_node.firstChild.data)
                time.sleep(2)
            n = n + 1
        #if node.nodeType in ( node.TEXT_NODE,node.CDATA_SECTION_NODE):
login(obj_ie)
#post(obj_ie)
get_title_content(obj_ie)        

       
        文件:tab.zip
        大小:267KB
        下载:
下载
       


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/15586/showart_1888349.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP