我正在尝试从像这样的页面中抓取匹配信息(页面格式相同,但显然对不同的匹配具有不同的值):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
非常感谢任何帮助或建议。
答案 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”一词前面没有正斜杠。