class MyBrowser: global result global DEBUG global DOMXSSTAG global XSSSIGN def __init__(self): self.debug = DEBUG self.xsssign = XSSSIGN self.tagsign = DOMXSSTAG #一些全局的东西 self.headers = {'User-Agent' : 'Mozilla/5.0 (MSIE 9.0; Windows NT 6.1; Trident/5.0)'} self.timeout = 3 #记录respones的数据 self._load_status = None self.http_code = None #初始化webkit self.application = QApplication([]) def load_url(self, url='', method='get', body='', headers={}): self.webpage = QWebPage() self.webframe = self.webpage.currentFrame() #document = self.webframe.documentElement().tagName() #print '--------------' #print self.webframe.documentElement().findFirstElement('script').tagName () #重写alert confirm事件 self.webpage.javaScriptAlert = self._on_javascript_alert self.webpage.javaScriptConfirm = self._on_javascript_confirm self.webpage.javaScriptConsoleMessage = self._on_javascript_consolemessage self.netmanager = self.webpage.networkAccessManager() #绑定事件 self.netmanager.finished.connect(self._request_ended) self.webpage.loadFinished.connect(self._on_load_finished) self.webpage.loadStarted.connect(self._on_load_started) try: method = getattr(QNetworkAccessManager, "%sOperation" % method.capitalize()) except AttributeError, e: if self.debug: my_print("[-] Error: %s" % str(e), 'yellow') request = QNetworkRequest(QUrl(url)) if headers == {}: headers = self.headers for header in headers: request.setRawHeader(header, headers[header]) self.webframe.load(request, method, body) self.wait_for()