仿照网上代码用pyqt4弄了一个浏览器,大多数网站都能访问了,也能访问flash了,但是诸如下面一些网站不能访问,求帮忙看看,附全部代码

tangcat123 tangcat123 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
http://www.52xiyou.com/playgame_55_1507_xiyou_1.html
上面这个网站我就是不能访问,里面有flash还有js跳转搞来搞去的我又不太懂JS,总之可能是qtweb少开了一些支持之类的。

折腾一天了,网上能找的代码资料也都找了。。。只能求助大神们了。
里面send按钮的代码请无视掉。。。
用的pyqt4,代码如下。


import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
import webbrowser

class WebPage(QWebPage):
def __init__(self):
super(WebPage, self).__init__()

def acceptNavigationRequest(self, frame, request, type):
if(type == QWebPage.NavigationTypeLinkClicked):
if(frame == self.mainFrame()):
self.view().load(request.url())
else:
webbrowser.open(request.url().toString())
return False
return QWebPage.acceptNavigationRequest(self, frame, request, type)

class MyBrowser(QWidget):

def __init__(self, parent = None):
super(MyBrowser, self).__init__(parent)
self.createLayout()
self.createConnection()

def search(self):
address = str(self.addressBar.text())
if address:
if address.find('://') == -1:
address = 'http://' + address
url = QUrl(address)
self.webView.load(url)
self.webView.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)
self.webView.page().linkClicked.connect(self.linkClicked)
self.webView.show()
def linkClicked(self, url):
self.load(url)

def createLayout(self):
self.setWindowTitle("keakon's browser")

self.addressBar = QLineEdit()
self.goButton = QPushButton("&GO")
self.sendButton = QPushButton("&Send")
bl = QHBoxLayout()
bl.addWidget(self.addressBar)
bl.addWidget(self.goButton)
bl.addWidget(self.sendButton)

self.webView = QWebView()
self.webSettings = self.webView.settings()
self.webSettings.setAttribute(QWebSettings.PluginsEnabled,True)
self.webSettings.setAttribute(QWebSettings.JavascriptEnabled,True)
self.webView.setPage(WebPage())

layout = QVBoxLayout()
layout.addLayout(bl)
layout.addWidget(self.webView)

self.setLayout(layout)

def createConnection(self):
self.connect(self.addressBar, SIGNAL('returnPressed()'), self.search)
self.connect(self.addressBar, SIGNAL('returnPressed()'), self.addressBar, SLOT('selectAll()'))
self.connect(self.goButton, SIGNAL('clicked()'), self.search)
self.connect(self.goButton, SIGNAL('clicked()'), self.addressBar, SLOT('selectAll()'))

self.connect(self.sendButton, SIGNAL('clicked()'), sendtest)


def sendtest():
import socket,sys
import struct
import binascii
host="42.51.132.111"
port=8000
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print s.getsockname()
senddata = binascii.a2b_hex ("000000220004313030370A183534386665356637306366323332316432653162383762331006")
print senddata
print repr(senddata[36])
s.send(senddata)

app = QApplication(sys.argv)

browser = MyBrowser()
browser.show()

sys.exit(app.exec_())
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
tangcat123
脚本语言 37,737 成员 34,208 内容