python - 在 driver.quit 后调用 chromedriver.quit 不起作用?
问题描述
我试图在我的 Python 脚本中退出 Chromedriver 后调用它:
#set driver options
chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--window-size=1420,1080')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument("--disable-notifications")
chrome_options.add_argument("--remote-debugging-port=9222")
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)
chrome_options.binary_location='/usr/bin/google-chrome-stable'
chrome_driver_binary = "/usr/bin/chromedriver"
driver = webdriver.Chrome(executable_path=chrome_driver_binary, chrome_options=chrome_options)
#Set base url
base_url = 'https://www.example.com&page='
events = []
eventContainerBucket = []
for i in range(1,40):
#cycle through pages in range
driver.get(base_url + str(i))
pageURL = base_url + str(i)
#do some stuff............
driver.quit()
# Want to re-open Chromedriver here to scrape a new URL
#set driver options
chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--window-size=1420,1080')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument("--disable-notifications")
chrome_options.add_argument("--remote-debugging-port=9222")
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)
chrome_options.binary_location='/usr/bin/google-chrome-stable'
chrome_driver_binary = "/usr/bin/chromedriver"
driver = webdriver.Chrome(executable_path=chrome_driver_binary, chrome_options=chrome_options)
#Set base url
base_url = 'https://www.example2.com&page='
events = []
eventContainerBucket = []
for i in range(1,40):
#cycle through pages in range
driver.get(base_url + str(i))
pageURL = base_url + str(i)
脚本的第一部分运行良好,驱动程序关闭,但在第二次 URL 抓取时无法再次初始化驱动程序(driver.get
失败)。它给了我错误:
Traceback (most recent call last):
File "scraper.py", line 462, in <module>
driver.get(base_url + str(i))
TypeError: 'WebElement' object is not callable
我怎样才能解决这个问题?
解决方案
driver.quit()
导致driver
实例丢失。
为了driver
通过命令再次使用 fedriver.get
你将不得不重新初始化它
driver = webdriver.Chrome(executable_path=chrome_driver_binary, chrome_options=chrome_options)
请参阅此处以供参考。
推荐阅读
- javascript - 如何使自定义组件在 Angular 中可拖动?
- excel - 高亮单元格作为字符串长度的函数
- ios - 使用枚举在结构中设置基于案例的变量的更有效方法
- laravel - Auth(guard) 功能在 laravel 5.6 中不起作用
- reporting-services - SSRS 如何找到 CASE 的所有值?
- ruby-on-rails - Rails Upsert PG created_at 问题
- python - Python Flask 上的同步 api 任务
- java - 如何将 logback StatusManager 数据写入日志文件?
- wordpress - 在插件包中安装作曲家
- c++ - 稍后在 C++ 中安排事件:如何传递要运行的任务