Selenium Chrome 不匹配
我非常想解决一个编程难题,这个问题已经困扰我5天了。我的目标是使用Selenium这个工具来抓取一个网站。下面是我的代码。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
chrome_options.add_argument('--headless=new')
chrome_options.add_argument('--no-sandbox')
service = Service()
browser = webdriver.Chrome(service=service, options=chrome_options)
browser.get('law.go.kr/')
time.sleep(5)
运行结果如下。出现了InvalidArgumentException
的错误。我认为'chrome=122.0.6261.111'是关键所在。
InvalidArgumentException: Message: invalid argument (Session info: chrome=122.0.6261.111)
Stacktrace:
#0 0x5745bb24dec3 \<unknown\>
#1 0x5745baf45b37 \<unknown\>
#2 0x5745baf2d4df \<unknown\>
#3 0x5745baf2b863 \<unknown\>
#4 0x5745baf2bdaa \<unknown\>
#5 0x5745baf4849e \<unknown\>
我猜这个错误出现的原因是Chrome版本不匹配。
我的Chrome版本:122.0.6261.112
我的Chrome-Webdriver版本:122.0.6261.111
所以我尝试了几种不同的方法,但都没有成功。
以下是我的尝试。首先,使用webdriver-manager的代码。
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
driver=webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
driver.get('law.go.kr')
但是,这也没有成功。错误信息是NoneType对象没有'split'属性
。我不知道为什么会出现这个问题。
determined_browser_version = ".".join(determined_browser_version.split(".")\[:3\])
latest_release_url = (self.\_latest_release_url
AttributeError: 'NoneType' object has no attribute 'split'
1 个回答
0
InvalidArgumentException: Message: invalid argument
上面这个错误的原因是:.get
方法需要一个完整的URL,而不是一个普通的字符串。
把这个:
browser.get('law.go.kr/')
改成:
browser.get('https://law.go.kr/')