免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9579 | 回复: 2

Python+PAMIE+30行代码便能打造ChinaUnix博客小助手 [复制链接]

论坛徽章:
0
发表于 2009-09-24 02:59 |显示全部楼层
Python这种脚本语言的强大功能越来越被广大的程序员所重视,这种之前在国内流行度不高的语言近来气势高涨。各种第三方模块层出不穷。

本文介绍的便是一种能非常方便操作IE的第三方工具,
PAMIE
,他能让你如同写JS一样来操作IE浏览器。包括自动启动,访问链接,设置文本框值,获取按钮,执行点击事件,甚至执行页面JS方法等等。下面用一个实际的例子详加说明:

以下简短代码便轻易实现,登录本人ChinaUnix,并以此点击日志文章,发文章,设置标题,分类,和博客内容,最后执行确定,发布成功。


# -*- coding: gb2312 -*-
from PAM30 import PAMIE
from string import split
#===============================================================================
# 从文件读取配置信息,登录url,账户,密码等
#===============================================================================
def getCfgFromFile(fileName='settings.txt'):
    file = open(fileName)
    dict = {}
    line = file.readline()
    while line != '':
        args = split(line, '=')
        dict[args[0]] = args[1].decode('utf-8').encode('gb2312')
        line = file.readline()
    return dict
dict = getCfgFromFile()
ie = PAMIE()
#===============================================================================
# 打开登录页面,设置用户/密码
#===============================================================================
ie.navigate(dict['login-url'])
ie.setTextBox('username', dict['username'])
ie.setTextBox('password', dict['password'])
#===============================================================================
# 获取登录按钮
#===============================================================================
loginbtn = ie.findElement('input', 'type', 'image')
ie.clickElement(loginbtn)
#===============================================================================
# 点击文章管理
#===============================================================================
ie.navigate(dict["article-url"])
#===============================================================================
# 点击写文章
#===============================================================================
mainFrame = ie.getFrame('main')
pwindow = mainFrame.document.parentWindow
pwindow.execScript('NewArticle()')
#===============================================================================
# 设置文章标题,文章分类,系统分类,文章类型
#===============================================================================
mainFrame = ie.getFrame('main')
doc = mainFrame.document
#------------------------------------------------------------------------ 设置文章标题
doc.getElementById('blog_title').value = dict['title']
#------------------------------------------------------------------------ 文章分类-java
doc.getElementById('frmid').value = '119124'
#------------------------------------------------------------------------ 系统分类-java
doc.getElementById('systemfrmid').value = '20'
#----------------------------------------------------------------------- 文章类型-原创
doc.getElementById('arttype').value = dict['arttype']
#===============================================================================
# 填写文章内容
#===============================================================================
pwindow = mainFrame.document.parentWindow
pwindow.execScript('InsertHTML("Python+PAMIE")')
pwindow.execScript('InsertHTML("如此强大的功能")')
#===============================================================================
# 发表文章
#===============================================================================
pwindow.execScript('savearticle()')

运行效果(发布演示文章过程中,无任何鼠标键盘交互!)

注意:本文纯属技术演示,其目的方便广大博主开发个人便利的博客辅助工具。任何人不得利用本人原代码以类似广告群发为目的的再次开发!ChinaUnix为大家提供了一个极其优秀的技术共享平台,我们每个人都有义务维护其良好的秩序!


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/103146/showart_2058891.html

论坛徽章:
0
发表于 2010-11-25 22:41 |显示全部楼层
写的很好,正在研究,你调用的是页面里的InsertHTML方法来插入数据的,我想直接修改文本框的数据来提交试试可不可以
看了一下对应的文本输入框是
剪贴板-1.jpg
但用下面的方法是找不到这个iframe的,不知道你有什么建议可以直接定位到这个iframe的body元素的
content=ie.findElement('iframe', 'class', 'editerTextArea')

论坛徽章:
0
发表于 2011-01-10 20:31 |显示全部楼层
怎么能够获得iframe中的元素?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP