我正在使用使用2种不同蜘蛛的网络抓取工具(使用 scrapy ):
到目前为止,一切运作良好,但网站A包含指向其他的链接,#34;普通"应该刮掉的网站(使用蜘蛛1)。 是否有Scrappy方法将请求传递给spider 1?
我想到的解决方案:
有更好的方法吗?
答案 0 :(得分:1)
我遇到了这样的情况,一个spyder在第一页中检索到URL的地址,第二个从那里调用来操作。
我不知道你的控制流程是什么,但是根据它,我只是在废弃新网址或者删除所有可能的网址后及时调用第一个spyder。
您是否有n°2可以检索同一网站的URL的情况?在这种情况下,我会存储所有网址,将它们排序为任一蜘蛛的dict中的列表,然后再次滚动,直到没有新元素留给列表进行探索。在我看来,这更好,因为它更灵活。
及时调用可能没问题,但是根据您的流量,它可能会降低性能,因为多次调用相同的函数可能会浪费大量时间来初始化事物。
您可能还希望使分析函数独立于蜘蛛,以便在您认为合适的情况下使它们可用。如果您的代码非常冗长和复杂,它可能有助于使代码更轻松,更清晰。我知道这样做并不总是可以避免,但这可能值得一试,最终你可能会在代码级别上更有效率。