我想知道是否有一种方法可以在scrapy中同时使用Base蜘蛛和Crawl蜘蛛!
假设我只想抓取url
中提到的一个start_url
并使用抓取蜘蛛抓住同一个start_url
中提到的另一个页面,我将如何在同一个程序中使用它们?
答案 0 :(得分:4)
执行此操作的一种方法是将CrawlSpider
与您需要的规则一起使用,并覆盖start_requests
方法以生成:
CrawlSpider
内置魔法解析请求,因此您需要将这些请求设置为self.parse
示例:
class MySpider(CrawlSpider):
...
start_urls_crawlspider = (url1, url2,)
start_urls_basespider = (url3,)
def start_requests(self):
for url in self.start_urls_crawlspider :
yield Request(url, callback=self.parse) # "parse" is the default anyway
for url in self.start_urls_basespider:
yield Request(url, callback=self.parse_base)
def parse_base(self, response):
...