通过添加扩展 adblock selenium python 来禁用广告

Diable ads by adding extension adblock selenium python

提问人:YasserKhalil 提问时间:7/4/2023 更新时间:7/5/2023 访问量:68

问:

我正在尝试以下代码,该代码应该将扩展添加到驱动程序中adblock

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager

def navigate_to_url(url):
    options = Options()
    options.add_argument('start-maximized')
    options.add_extension('adblock.crx')
    options.add_experimental_option('detach', True)
    options.add_experimental_option('excludeSwitches', ['enable-logging'])

    driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
    driver.get(url)
    return driver

if __name__ == '__main__':
    driver = navigate_to_url('https://www.google.com')
    print(driver.current_url)

代码正在工作,扩展程序已经存在,但 adblock 扩展程序打开了一个新选项卡。如何防止此类页面被自动打开?

python selenium-webdriver adblock

评论


答:

0赞 YasserKhalil 7/5/2023 #1

我已经创建了这个,但我欢迎任何其他想法或解决方案

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
from webdriver_manager.chrome import ChromeDriverManager

def navigate_to_url(url):
    options = Options()
    options.add_argument('start-maximized')
    options.add_extension('adblock.crx')
    options.add_experimental_option('detach', True)
    options.add_experimental_option('excludeSwitches', ['enable-logging'])

    driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
    driver.get(url)

    unwanted_url = 'https://getadblock.com/en/installed/'
    try:
        WebDriverWait(driver, 10).until(EC.url_to_be(unwanted_url))
    except TimeoutException:
        pass

    for handle in driver.window_handles:
        if handle != driver.current_window_handle:
            driver.switch_to.window(handle)
            driver.close()

    driver.switch_to.window(driver.window_handles[0])
    return driver

if __name__ == '__main__':
    driver = navigate_to_url('https://www.google.com')
    print(driver.current_url)