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

tangcat123 2014-12-17 11:04:42
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_())
...全文
271 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
panghuhu250 2014-12-18
  • 打赏
  • 举报
回复
是你所在的网络把它屏蔽了吧, 我这儿测试可以:

tangcat123 2014-12-17
  • 打赏
  • 举报
回复
刚才的代码还有点小问题。。 改了一点点。


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())
                print "local window"
            else:
                #webbrowser.open(request.url().toString())
                self.view().load(request.url())
                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.show()
    def linkClicked(self, url):
        self.webView.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.webView.setPage(WebPage())
        self.webSettings = self.webView.settings()
        self.webSettings.setAttribute(QWebSettings.PluginsEnabled,True)
        self.webSettings.setAttribute(QWebSettings.JavascriptEnabled,True)
        self.webView.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)
        self.webView.page().linkClicked.connect(self.linkClicked)


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

可以先试试www.youku.com然后点个视频

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧