您的位置:首页 > 编程语言 > Python开发

python pyqt4 qtwekit 实现百度自动登录领米粒

2011-01-21 17:26 831 查看
研究了好久终于成功了,下次搞淘宝,哈哈.......

这个代码需要PyQT4才行,要包括qtwebkit

# #coding:utf-8
import re
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import PyQt4
import signal
from PyQt4 import QtCore, QtGui
from PyQt4 import uic
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
from PyQt4.QtNetwork import *
class Baidu(QtCore.QObject):

def __init__(self):
QObject.__init__(self)

self.page = QWebPage()#如果想看图形窗口的话,注释掉本行,把下三已注释行取消注释即可
#self.webview = QWebView()
#self.page=self.webview.page()
self.current = "https://passport.baidu.com/?login"
self.logged = False
self.frame = self.page.mainFrame()
QtCore.QObject.connect(self.frame,QtCore.SIGNAL('loadFinished(bool)'),self.do_do)
#self.webview.show()
def start(self,username,password):
self.username=username
self.password=password
self.frame.load(QUrl(self.current))
def do_do(self,bool):
url = self.frame.url()
print url.toString()

if url.toString() == "https://passport.baidu.com/?login" :
if self.logged == False:
self.do_login()
self.logged=True
else:
#e = self.frame.findFirstElement("td[id=errortd]")
if 'url=url.replace(/^/.///gi,"http://passport.baidu.com/");' not in self.frame.toHtml():
print 'login failed'
sys.exit(1)
if url.toString() == "http://passport.baidu.com/center" :
print 'login successed'
self.frame.load(QUrl('http://hi.baidu.com/'+self.username+'/ihome/ihomefeed'))
if url.toString() == "http://hi.baidu.com/"+self.username+"/ihome/ihomefeed":
self.do_coin()

def do_login(self):
print 'do login'
#js_file = open('baidu_login.js','r')
#js = js_file.read()
#js_file.close()
js="frm=document.forms[0];frm.username.value='"+self.username+"';frm.normModPsp.value='"+self.password+"';checkForm(frm);frm.submit();"
#print js
self.frame.evaluateJavaScript(js)

def do_coin(self):
print 'do coin'
#js_file = open('baidu_coin.js','r')
#js = js_file.read()
#js_file.close()
js="if(baidu.g('dumili-get-btn').className=='able'){App.points.savePoints();}"
self.frame.evaluateJavaScript(js)
sys.exit(1)

if __name__ == "__main__":
app = QApplication(sys.argv)
baidu = Baidu()
baidu.start("username","password")
sys.exit(app.exec_())
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: