TaoSourcerer/CustomWebEnginePage.py

52 lines
2.4 KiB
Python

from PyQt5.QtWebEngineWidgets import QWebEnginePage, QWebEngineSettings
from PyQt5.QtCore import Qt, QUrl, QEvent, QUrl
import logging
# 로거 인스턴스 가져오기
logger = logging.getLogger('default_logger')
class CustomWebEnginePage(QWebEnginePage):
def __init__(self, profile, parent=None, use_mobile=False):
super(CustomWebEnginePage, self).__init__(profile, parent)
self.mobile_user_agent = "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1"
self.desktop_user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
self.setZoomFactor(0.75) # 줌을 75%로 설정
#self.use_mobile_agent(False)
#self.profile().setHttpUserAgent(mobile_user_agent)
if use_mobile:
self.profile().setHttpUserAgent(self.mobile_user_agent)
else:
self.profile().setHttpUserAgent(self.desktop_user_agent)
# JavaScript 활성화
settings = self.settings()
settings.setAttribute(QWebEngineSettings.JavascriptEnabled, True)
settings.setAttribute(QWebEngineSettings.JavascriptCanOpenWindows, True)
settings.setAttribute(QWebEngineSettings.JavascriptCanAccessClipboard, True)
def use_mobile_agent(self, use_mobile):
if use_mobile:
self.profile().setHttpUserAgent(self.mobile_user_agent)
else:
self.profile().setHttpUserAgent(self.desktop_user_agent)
self.parent().load(QUrl("https://world.taobao.com/wow/tmg-fc/tmw/search_image?spm="))
def event(self, event):
if event.type() == QEvent.KeyPress and event.key() == Qt.Key_Backspace:
self.triggerAction(QWebEnginePage.Back)
return True
return super().event(event)
def contextMenuEvent(self, event):
menu = self.createStandardContextMenu()
menu.addAction('Open Inspector', self.inspect)
menu.exec_(event.globalPos())
def inspect(self):
self.triggerAction(QWebEnginePage.InspectElement)
def keyPressEvent(self, event):
if event.key() == Qt.Key_Backspace:
self.back() # 백스페이스가 눌리면 이전 페이지로 이동
else:
super().keyPressEvent(event)