AutoThrottle不能保存Scrapy

时间:2017-07-04 19:40:20

标签: python web-scraping scrapy scrapy-spider

我可以在没有autothrottle的情况下保存数据,但是当我打开它时,我无法再保存json数据。

是否有使用CrawlerProcess的解决方案?不确定它是否是一个错误。

更新:

添加所有代码。

import scrapy
from scrapy.crawler import CrawlerProcess

class MySpider(scrapy.Spider):  
    name = None
    start_urls = None

class Spider:

    def __init__(self,parse,start_urls,**kwargs):
        self.name = 'spider'
        self.parse = parse      
        self.start_urls = start_urls
        self.kwargs = kwargs.get('settings')

    def run(self):

        process = CrawlerProcess(self.kwargs)
        MySpider.name = self.name
        MySpider.start_urls = self.start_urls
        MySpider.parse = self.parse     
        process.crawl(MySpider)
        process.start() 

FILE_NAME = 'my_data.json'

SETTINGS = {
            'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
            'FEED_FORMAT': 'json',
            'FEED_URI': FILE_NAME,
            'HTTPERROR_ALLOWED_CODES' : [x for x in range(200,600)],
            'AUTOTHROTTLE_ENABLED':True,
            'AUTOTHROTTLE_DEBUG':True,

            'CONCURRENT_REQUESTS_PER_DOMAIN':5,
            'DOWNLOAD_TIMEOUT':5,

            'RANDOMIZE_DOWNLOAD_DELAY':True,            
            'DNS_TIMEOUT':5,}



def parse(self,response):
    yield {             
            'url': response.url,
            'status':response.status,
            'redirects': response.request.meta.get('redirect_urls'),
               }



s = Spider(parse=parse,       
           start_urls=START_URLS,
           settings=SETTINGS)
s.run() 

我继承了MySpider类,所以我可以用蜘蛛创建一个模块。

0 个答案:

没有答案