我有一个spider,我必须使用Selenium在页面上获取动态数据。下面是它的样子:
class MySpider(
name = 'myspider'
start_urls = ['http://example.org']
def __init__(self, *args, **kwargs):
super(, self).__init__(*args, **kwargs)
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(5)
dispatcher.connect(self.spider_closed, signals.spider_closed)
def spider_closed(self, spider):
if self.driver:
self.driver.quit()
self.driver = None
这里的问题是,当我在Scrapyd中取消作业时,它直到我手动关闭窗口才会停止。显然,当我将spider部署到实际服务器上时,我无法做到这一点。在
以下是我每次点击“取消”时在Scrapyd日志中看到的:
^{pr2}$但作业仍在作业列表中,并标记为“正在运行”。那我怎么才能关闭驱动程序呢?在
你有没有试过在蜘蛛上实现from-crawler?我只在管道和扩展上做过这些,但是对于蜘蛛来说应该是一样的。。在
http://doc.scrapy.org/en/latest/topics/spiders.html#scrapy.spiders.Spider.from_crawler
导入
SignalManager
:然后更换:
^{pr2}$有:
相关问题 更多 >
编程相关推荐