如何解决Selenium&WebDriver for Chrome无法在JupyterLabMac上运行
背景:
我正在尝试在Mac上使用Selenium来刮取食谱网站,但是在使用Selenium初始化Chrome WebDriver时遇到问题。我下载了chromedriver(Windows和Mac版本),并且与JupyterNotebook文件位于同一目录中:
代码:
from bs4 import BeautifulSoup
import requests
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import selenium
import time
import csv
import os
import sys
driver=webdriver.Chrome('chromedriver')
url = "https://www.simplyrecipes.com/index/"
driver.get(url)
response=requests.get(url)
soup=BeautifulSoup(response.text,'html.parser')
错误:
driver---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
~/anaconda3/envs/DataScience/lib/python3.7/site-packages/selenium/webdriver/common/service.py in start(self)
75 stderr=self.log_file,---> 76 stdin=PIPE)
77 except TypeError:
~/anaconda3/envs/DataScience/lib/python3.7/subprocess.py in __init__(self,args,bufsize,executable,stdin,stdout,stderr,preexec_fn,close_fds,shell,cwd,env,universal_newlines,startupinfo,creationflags,restore_signals,start_new_session,pass_fds,encoding,errors,text)
799 errread,errwrite,--> 800 restore_signals,start_new_session)
801 except:
~/anaconda3/envs/DataScience/lib/python3.7/subprocess.py in _execute_child(self,p2cread,p2cwrite,c2pread,c2pwrite,errread,start_new_session)
1550 err_msg += ': ' + repr(err_filename)
-> 1551 raise child_exception_type(errno_num,err_msg,err_filename)
1552 raise child_exception_type(err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'chromedriver': 'chromedriver'
During handling of the above exception,another exception occurred:
WebDriverException Traceback (most recent call last)
<ipython-input-50-130893dfba7a> in <module>
1 #set up chromedriver
----> 2 =web.Chrome('chromedriver')
3 url = "https://www.simplyrecipes.com/index/"
4 .get(url)
5 response=requests.get(url)
~/anaconda3/envs/DataScience/lib/python3.7/site-packages/selenium/webdriver/chrome/webdriver.py in __init__(self,executable_path,port,options,service_args,desired_capabilities,service_log_path,chrome_options,keep_alive)
71 service_args=service_args,72 log_path=service_log_path)
---> 73 self.service.start()
74
75 try:
~/anaconda3/envs/DataScience/lib/python3.7/site-packages/selenium/webdriver/common/service.py in start(self)
81 raise WebDriverException(
82 "'%s' executable needs to be in PATH. %s" % (
---> 83 os.path.basename(self.path),self.start_error_message)
84 )
85 elif err.errno == errno.EACCES:
WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
driverdriver
帮助:
我已经阅读了documentation,并且很确定我已经设置了所有内容,所以我根本无法理解我要去哪里。
/>
任何建议将不胜感激
解决方法
即使Juypternote与chrome驱动程序位于同一路径,您仍然必须指定路径-
from bs4 import BeautifulSoup
import requests
from splinter import Browser
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import selenium
import time
import csv
driver=webdriver.Chrome("/Users/williamforsyth/Documents/homeworks/Homework_Repos/group-project-2/Kathryn/chromedriver")
url = "https://www.simplyrecipes.com/index/"
driver.get(url)
response=requests.get(url)
soup=BeautifulSoup(response.text,'html.parser')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。