Selenium连接错误、import os黄线及图片保存问题求助
问题解答
1. Selenium出现“Unable connect”错误的解决方法
- 检查浏览器驱动与浏览器版本匹配度:Chrome对应ChromeDriver、Firefox对应GeckoDriver,必须保证驱动和浏览器大版本一致,版本不匹配会直接导致连接失败,去对应驱动官网下载适配版本即可。
- 确认驱动路径配置正确:代码中指定驱动时要用真实存在的绝对路径,比如
webdriver.Chrome(executable_path="/Users/jun/Downloads/chromedriver"),Windows系统还要加上.exe后缀。 - 验证目标网站网络连通性:直接用浏览器打开你要访问的URL,若浏览器都无法加载,说明是网络或网站本身的问题,和Selenium无关。
- 排查代理、防火墙拦截:如果你的网络有代理设置,要在Selenium代码中配置对应代理规则;本地防火墙可能拦截驱动与浏览器的通信,可暂时关闭防火墙测试。
- 核对代码中的URL:确保URL开头带有
http://或https://,比如不能写google.com,要写https://www.google.com。
2. import os语句出现黄线的原因及解决
黄线是PyCharm静态代码检查的提示,分两种情况:
- 该
import os未被代码使用:PyCharm会标记未用到的导入语句,直接删除这条语句即可。 - 实际已使用但仍标黄:大概率是PyCharm缓存异常或项目Python解释器配置错误,解决方法:
- 点击
File -> Invalidate Caches...,选择Invalidate and Restart重启PyCharm。 - 检查项目解释器:
File -> Settings -> Project: xxx -> Python Interpreter,确认选择的是当前项目的虚拟环境或正确的Python版本。
- 点击
3. 爬取谷歌图片保存到指定文件夹的代码示例
先确保目标文件夹存在,再实现图片下载保存,示例代码如下:
import os import requests from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 目标保存路径 save_folder = '/Users/jun/Desktop/PyCham/selenium image folder' # 文件夹不存在则创建,exist_ok=True避免重复创建报错 os.makedirs(save_folder, exist_ok=True) # 初始化浏览器 driver = webdriver.Chrome() driver.get("https://www.google.com/search?q=dog&tbm=isch") # 等待图片加载完成(可根据需要调整等待时间) wait = WebDriverWait(driver, 10) wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "img.rg_i"))) # 获取图片元素(这里取前10张为例) image_elements = driver.find_elements(By.CSS_SELECTOR, "img.rg_i") for index, img_elem in enumerate(image_elements[:10]): try: # 获取图片真实链接,优先取src,没有则取data-src img_url = img_elem.get_attribute("src") or img_elem.get_attribute("data-src") if not img_url: continue # 下载图片内容 img_data = requests.get(img_url).content # 拼接保存路径,用索引避免文件名重复 save_path = os.path.join(save_folder, f"google_img_{index+1}.jpg") # 写入文件 with open(save_path, "wb") as f: f.write(img_data) print(f"第{index+1}张图片保存成功") except Exception as e: print(f"第{index+1}张图片保存失败:{str(e)}") # 关闭浏览器 driver.quit()
注意事项:
- 提前安装依赖库:执行
pip install requests - 谷歌图片的页面元素选择器可能会更新,若无法定位元素,需重新检查页面的CSS选择器
- 批量爬取时建议添加延时(如
time.sleep(1)),避免触发反爬机制
内容的提问来源于stack exchange,提问作者ghkd qudwns
相关产品推荐
相关产品推荐

