文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>将blogbus博客搬家至百度空间

将blogbus博客搬家至百度空间

时间:2009-04-02  来源:riverbird2005

百度空间的搬家工具不能访问了,只能自己动手搬家.昨天打算用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
下载: 下载
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载