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)