如何在Selenium中使用Google Chrome扩展程序?

时间:2016-04-03 04:13:27

标签: python google-chrome selenium google-chrome-extension web-scraping

我正在尝试从像这样的页面中抓取匹配信息(页面格式相同,但显然对不同的匹配具有不同的值):https://csgolounge.com/match?m=8967

问题是,我想要的信息仅在您使用Chrome扩展程序时显示,"休息室驱逐舰" ...经过大量的反复试验,我终于想通了,为了获取该信息,我使用的python脚本必须具有该扩展"包含在其中"不知何故。我在这里浏览了其他答案,并从另一个stackoverflow线程中找到了这段代码,演示了如何在使用selenium时添加扩展:

            from selenium import webdriver
            from selenium.webdriver.chrome.options import Options

            chop = webdriver.ChromeOptions()
            chop.add_extension('Adblock-Plus_v1.4.1.crx')
            driver = webdriver.Chrome(chrome_options = chop)

我去了Chrome Extension Downloader以获取LoungeDestroyer的.crx文件,将其放在chrome扩展文件夹中(从&#34获取文件地址;获取信息")并修改上述代码我的目的是为了得到以下内容:

            from selenium import webdriver
            from selenium.webdriver.chrome.options import Options

            chop = webdriver.ChromeOptions()
            chop.add_extension('Users/Username_Here/Library/Application Support/Google/Chrome/Default/Extensions/ghahcnmfjfckcedfajbhekgknjdplfcl/LoungeDestroyer_v0.9.3.7.crx')
            driver = webdriver.Chrome(chrome_options = chop)

            matchID = raw_input("Enter match ID (four digit number in CSGL URL): ")
            driver.get("https://csgolounge.com/match?m="+matchID)

问题是,我不认为我已经替换了Adblock-Plus_v1.4.1.crx' Adblock-Plus_v1.4.1.crx'在原始代码中。

运行我的修改版本会返回以下错误:

            IOError: Path to the extension doesn't exist

非常感谢任何帮助或建议。

1 个答案:

答案 0 :(得分:2)

问题是我没有安装chromedriver(http://chromedriver.storage.googleapis.com/index.html?path=2.21/)。安装完成后,我必须在代码中输入chromedriver可执行文件的路径。所有的说法和完成,这是有效的代码:

            from selenium import webdriver
            from selenium.webdriver.chrome.options import Options


            chop = webdriver.ChromeOptions()
            chop.add_extension('/Users/Username_Here/Library/Application Support/Google/Chrome/Default/Extensions/ghahcnmfjfckcedfajbhekgknjdplfcl/LoungeDestroyer_v0.9.3.7.crx')
            driver = webdriver.Chrome(executable_path='/Users/Username_Here/Downloads/chromedriver', chrome_options = chop)

            # go to the match page
            matchID = raw_input("Enter match ID (four digit number in CSGL URL): ")
            driver.get("https://csgolounge.com/match?m="+matchID)

另外,我得到扩展路径错误的原因是因为我在文件地址中的“Users”一词前面没有正斜杠。