You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行带UI(有头模式)的scrapy-selenium时报TypeError: NoneType不可迭代

错误原因

这个报错是因为你未在settings.py中配置SELENIUM_DRIVER_ARGUMENTS参数,scrapy-selenium中间件初始化时需要遍历该参数传入浏览器启动参数,参数不存在时就会报NoneType不可迭代的错误。

解决方案

1. 修改settings.py配置

要开启有头UI模式,不需要添加--headless参数,补充配置如下:

SELENIUM_DRIVER_NAME = 'chrome'
SELENIUM_DRIVER_EXECUTABLE_PATH ='Musttrybasic/chromedriver.exe'
# 新增浏览器启动参数配置,空列表默认就是有头模式
SELENIUM_DRIVER_ARGUMENTS = []
# 有需要可以加其他常用参数,比如窗口最大化、禁用沙箱等:
# SELENIUM_DRIVER_ARGUMENTS = ['--start-maximized', '--no-sandbox', '--disable-dev-shm-usage']

2. 修复爬虫代码问题

你的parse方法存在缩进错误,同时如果使用Selenium4+版本,旧的元素定位方法已经弃用,建议修改为兼容写法:

def parse(self, response):
    # 修正缩进错误
    driver = response.meta['driver']
    # Selenium4+推荐用By类定位元素
    search_input = driver.find_element(By.CSS_SELECTOR, 'input#location')
    search_input.send_keys('pune')
    time.sleep(5)
    search_input.send_keys(Keys.DOWN)
    search_input.send_keys(Keys.ENTER)
    time.sleep(10)
    # 后续可通过driver.page_source获取渲染后的页面源码,再用Selector解析提取数据

注意事项

确保你的chromedriver版本和本地安装的Chrome浏览器主版本完全一致,否则也可能出现浏览器启动失败的问题。

内容的提问来源于stack exchange,提问作者Iswar Chand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 17:54:05