python - scrapy 如何设置每个域名需要爬取的页面数目
PHP中文网
PHP中文网 2017-04-17 16:37:20
[Python讨论组]

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

下面是我已经实现的部分

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就停止爬这个网站,但是应该怎么实现呢
PHP中文网
PHP中文网

认证0级讲师

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号