我知道这个问题被问了很多次,我也尝试过所有的答案,但对我来说不起作用。我在一个简单的脚本上尝试了选项和PATH方法来提取网页的标题,它起到了作用。但有了所有这些代码,它给了我所说的错误
import requests
import pandas as pd
from bs4 import BeautifulSoup
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
HEADERS = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'}
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-logging"])
PATH = r"C:UsershpDownloadschromedriverchromedriver.exe"
driver = webdriver.Chrome(options=options , executable_path=PATH)
def get_current_url(url, jobTitle, location):
driver = webdriver.Chrome()
driver.get(url)
time.sleep(3)
driver.find_element_by_xpath('//*[@Id="text-input-what"]').send_keys(jobTitle)
time.sleep(3)
driver.find_element_by_xpath('//*[@Id="text-input-where"]').send_keys(location)
time.sleep(3)
driver.find_element_by_xpath('/html/body/div').click()
time.sleep(3)
try:
driver.find_element_by_xpath('//*[@id="jobsearch"]/button').click()
except:
driver.find_element_by_xpath('//*[@id="whatWhereFormId"]/div[3]/button').click()
current_url = driver.current_url
return current_url
current_url = get_current_url('https://pk.indeed.com/', 'Python Developer', 'Karachi')
print(current_url)
解决方案
使用
ChromeDriverManager
可以消除所有驱动程序、版本问题
如果您正在使用ChromeDriverManager-Webdriver ManagerPython,您不必显式下载
ChromeDriver
自动下载。如果您想使用下载的
ChromeDriver
,可以避免使用ChromeDriverManager - Webdriver Manager
使用
ChromeDriverManager
可以使用以下代码块:from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) driver.maximize_window() driver.get("https://www.google.com")
下载特定版本的ChromeDriver,您可以使用以下代码块:
from selenium import webdriver from selenium.webdriver.chrome.service import Service s = Service('C:/Users/hp/Downloads/chromedriver/chromedriver.exe') driver = webdriver.Chrome(service=s)
注意:如果您在
Linux / MAC O SX
系统上,则需要剥离扩展部件,即.exe
,因为它仅适用于windows
平台。而不是
PATH = r"C:UsershpDownloadschromedriverchromedriver.exe" driver = webdriver.Chrome(options=options , executable_path=PATH)
尝试
from selenium.webdriver.chrome.service import Service webdriver_service = Service('C:UsershpDownloadschromedriverchromedriver.exe') driver = webdriver.Chrome(service=webdriver_service)
您有两个选项。
首先,您可以将
C:UsershpDownloadschromedriverchromedriver.exe
添加到系统路径中。请按照下面的指南进行操作。https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/
第二,当您使用r字符串时,您需要像这样更改斜线。如果你翻转它,它应该可以工作。
PATH = r"C:/Users/hp/Downloads/chromedriver/chromedriver.exe"