高配台式机运行Scrapy+Selenium爬虫速度低于低配笔记本排查求助
问题原因排查方向
你的scrapy bench跑分结果说明台式机的纯Scrapy运行性能远好于笔记本,性能瓶颈不在Scrapy本身,而出在Selenium调用Firefox的渲染/交互环节,可按以下优先级排查:
- Windows 10 Education N版本安全策略限制
Education N版本默认启用的组策略、Windows Defender安全规则比Pro版本更严格,会对浏览器进程、脚本执行、网络请求做额外的实时扫描,每个请求叠加的扫描开销正好符合你遇到的3-4秒延迟差。
解决方法:临时关闭Windows Defender实时保护和系统防火墙,运行爬虫测试,如果速度恢复,将Python.exe、geckodriver.exe、Firefox安装目录加入Defender的排除列表即可。 - IPv6优先级配置问题
台式机的以太网配置可能默认开启了IPv6优先,而目标网站的IPv6链路连通性差,每次请求都会先尝试IPv6连接等待超时后才切换为IPv4,固定的超时时间叠加原有请求耗时就会出现稳定7秒的现象。
解决方法:临时禁用台式机网络适配器的IPv6协议,再次运行爬虫验证速度。 - Firefox运行配置差异
即使版本相同,两台设备的Firefox运行参数、硬件加速配置也可能存在差异:台式机可能开启了硬件加速但显卡驱动存在兼容性问题,反而拖慢渲染速度;也可能系统给后台运行的Firefox进程分配的优先级更低。
解决方法:在Firefox设置中关闭「使用硬件加速」选项;给Selenium的Firefox启动参数添加--headless(无头模式)、--priority=high参数,提升进程优先级。 - Scrapy配置未同步
确认两台设备的Scrapy项目settings.py配置完全一致,重点检查CONCURRENT_REQUESTS、DOWNLOAD_DELAY、SELENIUM_PAGE_LOAD_TIMEOUT、SELENIUM_DRIVER_ARGUMENTS这几个参数是否存在差异。 - Python小版本兼容性问题
虽然概率极低,你也可以尝试将台式机的Python版本降级为和笔记本一致的3.7.3版本,排除小版本对Selenium交互逻辑的影响。
内容的提问来源于stack exchange,提问作者John Denmo
相关产品推荐
相关产品推荐

