scrapy 如何设置每个域名需要爬取的页面数目

我要爬一些域名不同的网站,打算每个网站爬一定数目的页面之后就不再爬这个网站了,请问这种应该怎么实现?

下面是我已经实现的部分

class AnExampleSpider(CrawlSpider):
name="anexample"
rules=(
    Rule(LinkExtractor(allow=r"/*.html"),
    callback="parse_url",follow=True),
)   
def __init__(self, url_file ): #, N=10,*a, **kw
    data = open(url_file, 'r').readlines() #[:N]
    self.allowed_domains = [ i.strip() for i in data ] 
    self.start_urls = ['http://' + domain for domain in self.allowed_domains]
    super(AnExampleSpider, self).__init__()#*a, **kw

    self.maximumPagesPerSite=100 #每个网站最多可以爬取的页面个数
    self.crawledPagesPerSite={}
def parse_url(self, response):
    url=response.url
    domain_name=tldextract.extract(url).domain
    if domain_name in self.crawledPagesPerSite:
     self.crawledPagesPerSite[domain_name]+=1
    else:
        self.crawledPagesPerSite[domain_name]=1
    print self.crawledPagesPerSite[domain_name]
    #如果大于maximumPagesPerSite就停止爬这个网站,但是应该怎么实现呢
阅读 4.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题