Boris-code / feapder

🚀🚀🚀feapder is an easy to use, powerful crawler framework | feapder是一款上手简单,功能强大的Python爬虫框架。内置AirSpider、Spider、TaskSpider、BatchSpider四种爬虫解决不同场景的需求。且支持断点续爬、监控报警、浏览器渲染、海量数据去重等功能。更有功能强大的爬虫管理系统feaplat为其提供方便的部署及调度
http://feapder.com
Other
2.88k stars 476 forks source link

render=True报错 #232

Closed xiaoqiangclub closed 1 year ago

xiaoqiangclub commented 1 year ago

需知

升级feapder,保证feapder是最新版,若BUG仍然存在,则详细描述问题

pip install --upgrade feapder

问题 升级feapder到1.8.6以后,以前使用浏览器渲染的代码(render=True)出现了报错, 怕是因为代码内部错误我就重新创建了一个最简洁的代码进行测试,发现只要设置了参数render=True,就会报错: | ERROR | logging:exception:line:1469 | init() got an unexpected keyword argument 'executable_path' 截图 image

代码 import feapder

class TestFeapder(feapder.AirSpider): def start_requests(self): yield feapder.Request("https://spidertools.cn", render=True)

def parse(self, request, response):
    # 提取网站title
    print(response.xpath("//title/text()").extract_first())
    # 提取网站描述
    print(response.xpath("//meta[@name='description']/@content").extract_first())
    print("网站地址: ", response.url)

if name == "main": TestFeapder().start()

lusi1990 commented 1 year ago

是不是用的 selenium? selenium 的最新版本不支持 executable_path, 改用 Service 了, 你可以 降低 selenium 的版本, 或者用 playwright渲染, 在 setting 中修改成 RENDER_DOWNLOADER = "feapder.network.downloader.PlaywrightDownloader".

Boris-code commented 1 year ago

是不是用的 selenium? selenium 的最新版本不支持 executable_path, 改用 Service 了, 你可以 降低 selenium 的版本, 或者用 playwright渲染, 在 setting 中修改成 RENDER_DOWNLOADER = "feapder.network.downloader.PlaywrightDownloader".

知道是哪个版本的selenum开始没executable_path参数了么

suyin-long commented 11 months ago
from selenium import webdriver

service = webdriver.ChromeService()
driver = webdriver.Chrome(service=service)

注意:此代码需要 Selenium v4.11 或更高版本