gpt4 book ai didi

python - 需要帮助重写函数 QWebPage.userAgentForUrl()

转载 作者:行者123 更新时间:2023-12-01 05:52:55 25 4
gpt4 key购买 nike

我想重写 QWebPage 类的 userAgentForUrl 函数,但我做错了什么,用户代理仍然是默认的。

#! /usr/bin/env python2.7

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
import sys
from bs4 import BeautifulSoup

class Browser(QWebView, QWebPage):

def __init__(self):
QWebView.__init__(self)
QWebPage.__init__(self)
self.frame = self.page().mainFrame()
self.loadFinished.connect(self.print_html)
self.loadProgress.connect(self.print_progress)

def userAgentForUrl(self, url):
return "Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"

def print_progress(self, percent):
print percent

def print_html(self):
print "Done"
self.fill_form()
html = unicode(self.frame.toHtml()).encode('utf-8')
soup = BeautifulSoup(html)
print soup.prettify()

if __name__ == '__main__':
app = QApplication(sys.argv)
br = Browser()
br.load(QUrl('http://www.useragentstring.com/'))
br.show()
app.exec_()

最佳答案

在 PyQt 中,从多个 Qt 类继承通常不起作用。因此,您将需要一个单独的 QWebPage 子类才能覆盖虚拟 userAgentForUrl功能。

尝试这样的事情:

class WebPage(QWebPage):
def userAgentForUrl(self, url):
return "Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"

class Browser(QWebView):
def __init__(self):
QWebView.__init__(self)
self.setPage(WebPage())

关于python - 需要帮助重写函数 QWebPage.userAgentForUrl(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13544413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com