Python 如何向Scrapy/Selenium爬行器动态添加作业?
我正在使用Scrapy+Selenium来抓取Facebook好友数据。我想写一个程序,将2个用户名作为输入,递归地抓取他们的好友列表,直到找到连接这2个用户的链。我的spider可以登录、生成项目并将它们发送到MongoDB(通过管道)。我有一个工作函数,可以向Mongo进行查询,以检查链是否存在并返回它。我对算法的看法是:Python 如何向Scrapy/Selenium爬行器动态添加作业?,python,selenium,scrapy,Python,Selenium,Scrapy,我正在使用Scrapy+Selenium来抓取Facebook好友数据。我想写一个程序,将2个用户名作为输入,递归地抓取他们的好友列表,直到找到连接这2个用户的链。我的spider可以登录、生成项目并将它们发送到MongoDB(通过管道)。我有一个工作函数,可以向Mongo进行查询,以检查链是否存在并返回它。我对算法的看法是: 获取输入(2个用户名) 将2个用户放入爬网队列 Facebook登录 弹出队列并开始爬网 一旦其他项目发送到Mongo->检查是否找到链->如果没有:将刮取的用户的好友用
process = CrawlerProcess(config)
process.crawl(FacebookSpider, <username>, session)
process.start()
process=CrawlerProcess(配置)
进程爬网(FacebookSpider,会话)
process.start()
在不停止爬行器的情况下,如何向队列添加新用户名(在一次爬网完成并处理项目之后)?或者,方法应该是“等待蜘蛛完成任务”->“创建新任务”
我试着翻阅那些粗糙的文档,但对于像我这样的新手来说,这实在是太难了。我尝试使用CrawlerRunner,但无法使其正常工作。您是否可以
让process.crawl(args)
?这就是CrawlerRunner的方法,对吗?这是怎么回事?我尝试使用“常用实践”中的所有示例,但无法启动一个爬行器作业。什么会产生process.crawl?它会是spider类中的一个单独的方法吗?您会不会产生process.crawl(args)
?这就是CrawlerRunner方法,对吗?这是怎么回事?我尝试使用“常用实践”中的所有示例,但无法启动一个爬行器作业。什么会产生process.crawl?它会是spider类中的一个单独的方法吗?