Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8704686
  • 博文数量: 1413
  • 博客积分: 11128
  • 博客等级: 上将
  • 技术积分: 14685
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-13 10:03
个人简介

follow my heart...

文章分类

全部博文(1413)

文章存档

2013年(1)

2012年(5)

2011年(45)

2010年(176)

2009年(148)

2008年(190)

2007年(293)

2006年(555)

分类: Python/Ruby

2009-04-02 10:42:31

百度空间的搬家工具不能访问了,只能自己动手搬家.昨天打算用html post的方法进行,最后在验证码的问题上停下了.没办法,只能通过更低级的办法,对IE进行操作的方法进行.这里要用到PAMIE库,我用的是python2.6+pamie2,当然你可以根据自己的版本进行选择.PAMIE可以非常方便的控制IE浏览器,其初衷是用来进行web自动化测试的.整个程序在给博客的内容编辑框处停下了,因为不好通过其id/name获取这个第三方插件的标识,最后,用了另一个办法,才算最终搞定.
需要注意的地方:
1).C:\\Users\\riverbird\\Downloads\\Pam\\backup-20090401230236.xml,这是我备份的blogbus博客的xml文件;
2).riverbird/creat/blog/,请将riverbird换成你的空间用户名.
3).C:\\Users\\riverbird\\Downloads\\Pam\\tab.exe,这个tab.exe是我写的一个小程序,主要有两个作用,一是发tab键,将焦点从标题栏转到编辑框,另一个是发ctrl + v消息,就是粘贴了.
4).你大可不必用这个tab.exe程序,更好的替代品是用纯python写的WATSUP和sendkeys,其网站分别为:和里面有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("")
    #time.sleep(5)
    ie.textBoxSet("username","xxx")
    ie.textBoxSet("password","xxx")
    ie.buttonClick('Submit')
        
def post(ie,title,content):
    ie.navigate("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
下载:下载
阅读(1994) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~