Chinaunix首页 | 论坛 | 博客
  • 博客访问: 206459
  • 博文数量: 48
  • 博客积分: 1935
  • 博客等级: 上尉
  • 技术积分: 491
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-29 00:59
文章分类

全部博文(48)

文章存档

2011年(1)

2010年(47)

我的朋友

分类: Python/Ruby

2010-11-03 02:41:24

Python+PAMIE 打造全自动ChinaUnix博客小助手
2010-10-24 18:21

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()')

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

 

PAMIE python的IE自动化模块
2010-10-24 11:46

Python编程语言的出现,给开发人员带来了不一样的开发体验。在这里我们先从一个比较重要的Python PAMIE模块的应用方式来充分的分析一下这一编程语言的应用方式及特点,希望可以给大家带来一些帮助。

PAMIE的全称是Python Automated Module For Internet Explorer,顾名思义,PAMIE是一个实现IE自动化的模块。PAMIE的官方网站提供了最新模块的下载,但由于是个人开发的缘故,其他文档,常见问题解答之类的基本没有更新,在下载最新版本之后,主页上提供的资料有好多是错的,大家在用的时候要务必注意这一点,最明显的一个例子是我上篇文章里面说的,还有一些方法名字已经更换。使用的时候,要多查查PAM30.py!

下面使用了PAMIE Test Page做例子,说明一些基本方法的使用。

在最新版本中,PAM30.py中的类名已经换作PAMIE了,之前使用的import cPAMIE或 from cPAMIE import PAMIE显然会出错,from PAM30 import PAMIE

新建Python PAMIE模块实例

ie= PAMIE()

打开网页

ie.navigate ('')

在处理页面元素的时候,要查看页面源代码,这里推荐一个工具:Internet Explorer Developer Toolbar,很容易定位并查找web元素,

填文本框

ie.setTextBox('firstname','FirstName')

ie.setTextBox('lastname','LastName')

选择下拉菜单:

ie.selectListBox('state',"MS")

方形选择框:

ie.setCheckBox('cxbx',1) #1 2 3 或 * 号等都是 "勾选"的意思 '' 空字符串代表取消选择

圆形选择框:

这里选择 Jazz

ie.setRadioButton("music","Jazz") # music是这个 选择列表的名字,从网页源代码里找出

最后提交按钮

ie.clickButton("Submit")

以上就是对Python PAMIE模块的相关介绍。

 

 

阅读(1948) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-11-03 16:26:22

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com