Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在QWebEngineView中指定用户代理_Python_Pyqt_Pyqt5_User Agent_Qwebengineview - Fatal编程技术网

Python 如何在QWebEngineView中指定用户代理

Python 如何在QWebEngineView中指定用户代理,python,pyqt,pyqt5,user-agent,qwebengineview,Python,Pyqt,Pyqt5,User Agent,Qwebengineview,我正在使用PyQt5实现网页功能的自动化。PyQt5中显示的页面与Chrome中显示的页面大不相同。如果我要更改用户代理,我可以模拟Chromes的功能吗?如果是,我将如何更改以下示例中的用户代理: import sys from PyQt5.QtCore import * from PyQt5.QtWebEngineWidgets import * from PyQt5.QtWidgets import * app = QApplication(sys.argv) web = QWebEng

我正在使用PyQt5实现网页功能的自动化。PyQt5中显示的页面与Chrome中显示的页面大不相同。如果我要更改用户代理,我可以模拟Chromes的功能吗?如果是,我将如何更改以下示例中的用户代理:

import sys
from PyQt5.QtCore import *
from PyQt5.QtWebEngineWidgets import *
from PyQt5.QtWidgets import *

app = QApplication(sys.argv)
web = QWebEngineView()

profile = QWebEngineProfile()
profile.setHttpUserAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36")

# How do i set the profile in the web ???

web.load(QUrl("https://stackoverflow.com"))
web.show()
web.loadFinished.connect(on_load_finished)

sys.exit(app.exec_())
根据:

用户代理请求头包含一个特征字符串 允许网络协议对等方识别应用程序类型, 的操作系统、软件供应商或软件版本 正在请求软件用户代理

某些网页将使用用户代理为浏览器显示个性化内容,例如,通过用户代理信息,您可以推断它是否支持AJAX

如果我要更改用户代理,我可以模拟Chromes的功能吗?

可能是的,尽管Google Chrome和Qt Webengine基于Chrome,但每个开发组都创建了一个新的层,可以具有不同的功能,例如,Qt Webengine抑制了新版本中添加的许多Chrome功能

如何更改用户代理?

无需创建新的QWebEngineProfile,因为您可以使用页面的配置文件:

导入系统 从PyQt5.QtCore导入QUrl 从PyQt5.QtWebEngineWidgets导入QWebEngineView 从PyQt5.QtWidgets导入QApplication 如果名称=“\uuuuu main\uuuuuuuu”: app=QApplication(sys.argv) web=QWebEngineView() 打印(web.page().profile().httpUserAgent()) web.page().profile().setHttpUserAgent( “Mozilla/5.0(Windows NT 6.1;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/76.0.3809.132 Safari/537.36” ) web.load(QUrl(“https://stackoverflow.com")) web.show() web.resize(640480) sys.exit(app.exec_()) 如果要使用QWebEngineProfile,请创建新的QWebEnginePage:

导入系统 从PyQt5.QtCore导入QUrl 从PyQt5.QtWebEngineWidgets导入QWebEnginePage、QWebEngineProfile、QWebEngineView 从PyQt5.QtWidgets导入QApplication 如果名称=“\uuuuu main\uuuuuuuu”: app=QApplication(sys.argv) web=QWebEngineView() profile=QWebEngineProfile() profile.setHttpUserAgent( “Mozilla/5.0(Windows NT 6.1;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/76.0.3809.132 Safari/537.36” ) 页面=QWebEnginePage(配置文件,web) web.setPage(第页) web.load(QUrl(“https://stackoverflow.com")) web.show() web.resize(640480) sys.exit(app.exec_()) 请参见