【发布时间】:2020-03-27 18:59:39
【问题描述】:
我已经开始学习 Scrapy 来抓取网站。 我构建了一个简单的爬虫来查找我的物品,并将我的存储原始数据放在 AWS-S3 上。
为了满足需求,我启用了 Scrapy 缓存。 为此,我添加了这个 s3 扩展:
它运行良好,我在 S3 上看到了我的缓存文件夹。 现在,我希望能够“重播”原始“s3-data”以再次抓取它,以防我需要获取其他项目或更改我的解析。 有没有办法做到这一点?
我的跑步者代码:
import scrapy
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
from my_scraper.spiders.my_scraper import MyScraper
from datetime import datetime
settings = get_project_settings()
#settings['LOG_LEVEL'] = 'INFO'
#* Data File output
date = datetime.strftime(datetime.now(), '%Y%m%d')
settings['FEED_URI'] = 's3://BUCKET/KEY/PREFIX-DATA/dumpdate=%s/test.json' %date
#settings['FEED_URI'] = './data/test_handler.json'
#settings['FEED_FORMAT'] = 'json'
#settings['LOG_FILE'] = 'Q1.log'
#* Enabled cache.
settings['HTTPCACHE_EXPIRATION_SECS'] = 60 * 60 * 24 * 7 # Life Time cache
settings['HTTPCACHE_DIR'] = 'httpcache' #Local cache dir
settings['HTTPCACHE_ENABLED'] = True
#* Extension
settings["HTTPCACHE_STORAGE"] = "my_scraper.extensions.s3cache.S3CacheStorage"
settings["S3CACHE_URI"] = 's3://BUCKET/KEY/PREFIX-CACHE/dumpdate=%s' %date
process = CrawlerProcess(settings=settings)
process.crawl(MyScraper)
process.start()
【问题讨论】:
标签: python-3.x amazon-web-services amazon-s3 scrapy