企查查爬虫python实现(二)报错与细节

1、WebDriver object has no attribute find_element_by_xpath问题

重新安装selenium

pip show selenium # 查看版本

新电脑中卸载selenium,并安装指定版本4.2.0

pip uninstall selenium

pip install selenium==4.2.0

修改方法find_element_by_xpath

之前的写法:

wd.find_element_by_xpath('/html/body/div[3]/div[2]/div/div[1]/div[1]/div[1]/div/ul/li[2]/a')

现在的写法:

wd.find_element(By.XPATH, '/html/body/div[3]/div[2]/div/div[1]/div[1]/div[1]/div/ul/li[2]/a')

记得导入包

from selenium.webdriver.common.by import By

2、NameError: name 'NoSuchElementException' is not defined

头部加一句:from selenium.common.exceptions import NoSuchElementException 可解决

(1)为了优化速度可以加入下面的代码禁止图片加载,但是禁止了就不会出现图片验证的界面。(2)如果反扒策略失效,需要手动输入验证码才能进行爬虫,则需要屏蔽掉禁止图片加载,删除下面的代码。

 option.add_experimental_option(

"prefs", {"profile.managed_default_content_settings.images": 2}

 )

3、selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://chromedriver.chromium.org/home

  报错代码:

 driver = webdriver.Chrome(executable_path=r"/usr/bin/chromedriver", options=option) 

 原因 executable_path已经废除,chromedriver添加到环境变量后就直接这样写就行

driver = webdriver.Chrome(options=option)

4、DeprecationWarning: find_element_by_xpath is deprecated. Please use find_element(by=By.XPATH, value=xpath) instead

解决方法就是find_element_by_xpath 改为find_element(by=By.XPATH, value=xpath)

xpath就是对应页面元素的xpath,如下图

企查查爬虫python实现(二)报错与细节_第1张图片

5、selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: invalid locator (Session info: chrome=97.0.4692.99)

能打开,但是定位的元素错误,无法点击,要检查对应的ind_element(by=By.XPATH, value=xpath)中的xpath是否写错。

6、windows总同时打开excel文件和运行读取excel文件的程序就会报错permission denied: 'xxx.xlsx'

企查查爬虫python实现(二)报错与细节_第2张图片

 

7、如果在更新pip 的过程中pip卸载了,ModuleNotFoundError: No module named 'pip'

解决途径:

python -m ensurepip

python -m pip install --upgrade pip

8、WARNING: Ignoring invalid distribution -ip (f:\py\lib\site-packages)

python库site-packages中的文件夹中出现带~文件,删除 

企查查爬虫python实现(二)报错与细节_第3张图片

你可能感兴趣的:(爬虫,爬虫,selenium,python,chrome)