from PySide2.QtWebEngineCore import QWebEngineUrlRequestInterceptor, QWebEngineUrlRequestInfo
class Interceptor(QWebEngineUrlRequestInterceptor):
def __init__(self, debug, block_rules=""):
super(Interceptor, self).__init__()
self.debug = debug
self.block_rules = block_rules
def interceptRequest(self, info) -> None:
if self.block_rules is not None:
If we have any URL’s in the block dictionary
url = info.requestUrl().toString()
if url.startswith(tuple("https://" + url for url in self.block_rules)):
block url’s
info.block(True)
print(f"Blocked:{url}")
if self.debug:
url = info.requestUrl().toString()
resource = info.resourceType()
if resource == QWebEngineUrlRequestInfo.ResourceType.ResourceTypeMainFrame:
print(f"Intercepted link:{url}")
elif resource != QWebEngineUrlRequestInfo.ResourceType.ResourceTypeMainFrame:
print(f"Intercepted resource:{url}")