我正在开发一个使用两种不同蜘蛛的网络爬虫(使用scrapy):
到目前为止,一切都运行得很好,但是网站A包含到其他“普通”网站的链接,这些网站也应该被刮掉(使用蜘蛛1)。是否有一种将请求传递给蜘蛛1的方法?
我想过的解决办法:
有更好的办法吗?
发布于 2017-08-09 09:47:10
我遇到了这样的情况,spyder在第一页中检索URL信息,第二页调用URL进行操作。
我不知道你的控制流是什么,但取决于它,我只是在取消一个新的url时,或者在取消所有可能的url之后,及时调用第一个spyder。
您有n°2可以为同一网站检索URL的情况吗?在本例中,我将存储所有urls,将它们排序为任意一个蜘蛛的dict中的list,然后再次滚动,直到没有新的元素留给列表来探索为止。这使它更好,因为它是更灵活的,在我看来。
及时调用可能是可以的,但取决于您的流程,它可能会使性能下降,因为对相同函数的多次调用可能会浪费大量时间初始化事情。
您还可能希望使分析功能独立于蜘蛛,以便使它们在您认为合适的情况下对两者都可用。如果您的代码是非常长和复杂的,它可能有助于使它更轻和更清晰。我知道这样做并不总是可以避免的,但这可能值得一试,而且您最终可能会在代码级别上更有效率。
https://stackoverflow.com/questions/45585281
复制相似问题