zg 매뉴얼의 scrapy 개발 (6) - extensions (확장) 개발
확장은 사용자 정의 기능을 scrapy에 추가하는 메커니즘을 제공합니다
예를 들어 파충류의 상태 통계가 확장되고 파충류의 운행 정보를 통계한다
로드 및 실행
scrapy가 시작될 때 확장된 단일 실례 대상을 만들고 확장된 설정을 settings에 추가합니다.py 파일
# , ,
EXTENSIONS = {
'scrapy.contrib.corestats.CoreStats': 500,
'scrapy.webservice.WebService': 500,
'scrapy.telnet.TelnetConsole': 500,}
#
MYEXT_ENABLED = True
공식 플러그인 예
from scrapy import signals
from scrapy.exceptions import NotConfigured
class SpiderOpenCloseLogging(object):
def __init__(self, item_count):
self.item_count = item_count
self.items_scraped = 0
@classmethod
def from_crawler(cls, crawler):
# , , NotConfigured
if not crawler.settings.getbool('MYEXT_ENABLED'):
raise NotConfigured
# settings.py
item_count = crawler.settings.getint('MYEXT_ITEMCOUNT', 1000)
#
ext = cls(item_count)
# spider
crawler.signals.connect(ext.spider_opened, signal=signals.spider_opened)
# spider
crawler.signals.connect(ext.spider_closed, signal=signals.spider_closed)
# item ( )
crawler.signals.connect(ext.item_scraped, signal=signals.item_scraped)
#
return ext
def spider_opened(self, spider):
spider.log("opened spider %s" % spider.name)
def spider_closed(self, spider):
spider.log("closed spider %s" % spider.name)
def item_scraped(self, item, spider):
self.items_scraped += 1
if self.items_scraped == self.item_count:
spider.log("scraped %d items, resetting counter" % self.items_scraped)
self.item_count = 0
텍스트 링크:http://www.hopez.org/blog/9/1396850810
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Web Scraping con scrapy y regexcomo solo tenemos un url se la pasamos directamente a scrapy.Request como string y el callback lo dirigimos a nuestro se...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.