BOT_NAME = 'scrapybot'
CLOSESPIDER_TIMEOUT = 0
CLOSESPIDER_PAGECOUNT = 0
CLOSESPIDER_ITEMCOUNT = 0
CLOSESPIDER_ERRORCOUNT = 0
COMMANDS_MODULE = ''
CONCURRENT_ITEMS = 100
CONCURRENT_REQUESTS = 16
CONCURRENT_REQUESTS_PER_DOMAIN = 8
CONCURRENT_REQUESTS_PER_IP = 0
COOKIES_ENABLED = True
COOKIES_DEBUG = False
DEFAULT_ITEM_CLASS = 'scrapy.item.Item'
DEFAULT_REQUEST_HEADERS = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
}
DEPTH_LIMIT = 0
DEPTH_STATS = True
DEPTH_PRIORITY = 0
DNSCACHE_ENABLED = True
DOWNLOAD_DELAY = 0
DOWNLOAD_HANDLERS = {}
DOWNLOAD_HANDLERS_BASE = {
'file': 'scrapy.core.downloader.handlers.file.FileDownloadHandler',
'http': 'scrapy.core.downloader.handlers.http.HttpDownloadHandler',
'https': 'scrapy.core.downloader.handlers.http.HttpDownloadHandler',
's3': 'scrapy.core.downloader.handlers.s3.S3DownloadHandler',
}
DOWNLOAD_TIMEOUT = 180 # 3mins
DOWNLOADER_DEBUG = False
DOWNLOADER_HTTPCLIENTFACTORY = 'scrapy.core.downloader.webclient.ScrapyHTTPClientFactory'
DOWNLOADER_CLIENTCONTEXTFACTORY = 'scrapy.core.downloader.webclient.ScrapyClientContextFactory'
DOWNLOADER_MIDDLEWARES = {}
DOWNLOADER_MIDDLEWARES_BASE = {
# Engine side
'scrapy.contrib.downloadermiddleware.robotstxt.RobotsTxtMiddleware': 100,
'scrapy.contrib.downloadermiddleware.httpauth.HttpAuthMiddleware': 300,
'scrapy.contrib.downloadermiddleware.downloadtimeout.DownloadTimeoutMiddleware': 350,
'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware': 400,
'scrapy.contrib.downloadermiddleware.retry.RetryMiddleware': 500,
'scrapy.contrib.downloadermiddleware.defaultheaders.DefaultHeadersMiddleware': 550,
'scrapy.contrib.downloadermiddleware.redirect.RedirectMiddleware': 600,
'scrapy.contrib.downloadermiddleware.cookies.CookiesMiddleware': 700,
'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware': 750,
'scrapy.contrib.downloadermiddleware.httpcompression.HttpCompressionMiddleware': 800,
'scrapy.contrib.downloadermiddleware.chunked.ChunkedTransferMiddleware': 830,
'scrapy.contrib.downloadermiddleware.stats.DownloaderStats': 850,
'scrapy.contrib.downloadermiddleware.httpcache.HttpCacheMiddleware': 900,
# Downloader side
}
DOWNLOADER_STATS = True
DUPEFILTER_CLASS = 'scrapy.dupefilter.RFPDupeFilter'
try:
EDITOR = os.environ['EDITOR']
except KeyError:
if sys.platform == 'win32':
EDITOR = '%s -m idlelib.idle'
else:
EDITOR = 'vi'
EXTENSIONS = {}
EXTENSIONS_BASE = {
'scrapy.contrib.corestats.CoreStats': 0,
'scrapy.webservice.WebService': 0,
'scrapy.telnet.TelnetConsole': 0,
'scrapy.contrib.memusage.MemoryUsage': 0,
'scrapy.contrib.memdebug.MemoryDebugger': 0,
'scrapy.contrib.closespider.CloseSpider': 0,
'scrapy.contrib.feedexport.FeedExporter': 0,
'scrapy.contrib.logstats.LogStats': 0,
'scrapy.contrib.spiderstate.SpiderState': 0,
'scrapy.contrib.throttle.AutoThrottle': 0,
}
FEED_URI = None
FEED_URI_PARAMS = None # a function to extend uri arguments
FEED_FORMAT = 'jsonlines'
FEED_STORE_EMPTY = False
FEED_STORAGES = {}
FEED_STORAGES_BASE = {
'': 'scrapy.contrib.feedexport.FileFeedStorage',
'file': 'scrapy.contrib.feedexport.FileFeedStorage',
'stdout': 'scrapy.contrib.feedexport.StdoutFeedStorage',
's3': 'scrapy.contrib.feedexport.S3FeedStorage',
'ftp': 'scrapy.contrib.feedexport.FTPFeedStorage',
}
FEED_EXPORTERS = {}
FEED_EXPORTERS_BASE = {
'json': 'scrapy.contrib.exporter.JsonItemExporter',
'jsonlines': 'scrapy.contrib.exporter.JsonLinesItemExporter',
'csv': 'scrapy.contrib.exporter.CsvItemExporter',
'xml': 'scrapy.contrib.exporter.XmlItemExporter',
'marshal': 'scrapy.contrib.exporter.MarshalItemExporter',
'pickle': 'scrapy.contrib.exporter.PickleItemExporter',
}
HTTPCACHE_ENABLED = False
HTTPCACHE_DIR = 'httpcache'
HTTPCACHE_IGNORE_MISSING = False
HTTPCACHE_STORAGE = 'scrapy.contrib.httpcache.DbmCacheStorage'
HTTPCACHE_EXPIRATION_SECS = 0
HTTPCACHE_IGNORE_HTTP_CODES = []
HTTPCACHE_IGNORE_SCHEMES = ['file']
HTTPCACHE_DBM_MODULE = 'anydbm'
ITEM_PROCESSOR = 'scrapy.contrib.pipeline.ItemPipelineManager'
# Item pipelines are typically set in specific commands settings
ITEM_PIPELINES = []
LOG_ENABLED = True
LOG_ENCODING = 'utf-8'
LOG_FORMATTER = 'scrapy.logformatter.LogFormatter'
LOG_STDOUT = False
LOG_LEVEL = 'DEBUG'
LOG_FILE = None
LOG_UNSERIALIZABLE_REQUESTS = False
LOGSTATS_INTERVAL = 60.0
MAIL_DEBUG = False
MAIL_HOST = 'localhost'
MAIL_PORT = 25
MAIL_FROM = 'scrapy@localhost'
MAIL_PASS = None
MAIL_USER = None
MEMDEBUG_ENABLED = False # enable memory debugging
MEMDEBUG_NOTIFY = [] # send memory debugging report by mail at engine shutdown
MEMUSAGE_ENABLED = False
MEMUSAGE_LIMIT_MB = 0
MEMUSAGE_NOTIFY_MAIL = []
MEMUSAGE_REPORT = False
MEMUSAGE_WARNING_MB = 0
NEWSPIDER_MODULE = ''
RANDOMIZE_DOWNLOAD_DELAY = True
REDIRECT_ENABLED = True
REDIRECT_MAX_METAREFRESH_DELAY = 100
REDIRECT_MAX_TIMES = 20 # uses Firefox default setting
REDIRECT_PRIORITY_ADJUST = +2
REFERER_ENABLED = True
RETRY_ENABLED = True
RETRY_TIMES = 2 # initial response + 2 retries = 3 requests
RETRY_HTTP_CODES = [500, 503, 504, 400, 408]
RETRY_PRIORITY_ADJUST = -1
ROBOTSTXT_OBEY = False
SCHEDULER = 'scrapy.core.scheduler.Scheduler'
SCHEDULER_DISK_QUEUE = 'scrapy.squeue.PickleLifoDiskQueue'
SCHEDULER_MEMORY_QUEUE = 'scrapy.squeue.LifoMemoryQueue'
SPIDER_MANAGER_CLASS = 'scrapy.spidermanager.SpiderManager'
SPIDER_MIDDLEWARES = {}
SPIDER_MIDDLEWARES_BASE = {
# Engine side
'scrapy.contrib.spidermiddleware.httperror.HttpErrorMiddleware': 50,
'scrapy.contrib.spidermiddleware.offsite.OffsiteMiddleware': 500,
'scrapy.contrib.spidermiddleware.referer.RefererMiddleware': 700,
'scrapy.contrib.spidermiddleware.urllength.UrlLengthMiddleware': 800,
'scrapy.contrib.spidermiddleware.depth.DepthMiddleware': 900,
# Spider side
}
SPIDER_MODULES = []
STATS_CLASS = 'scrapy.statscol.MemoryStatsCollector'
STATS_DUMP = True
STATSMAILER_RCPTS = []
TEMPLATES_DIR = abspath(join(dirname(__file__), '..', 'templates'))
URLLENGTH_LIMIT = 2083
USER_AGENT = 'Scrapy/%s (+http://scrapy.org)' % __import__('scrapy').__version__
TELNETCONSOLE_ENABLED = 1
TELNETCONSOLE_PORT = [6023, 6073]
TELNETCONSOLE_HOST = '0.0.0.0'
WEBSERVICE_ENABLED = True
WEBSERVICE_LOGFILE = None
WEBSERVICE_PORT = [6080, 7030]
WEBSERVICE_HOST = '0.0.0.0'
WEBSERVICE_RESOURCES = {}
WEBSERVICE_RESOURCES_BASE = {
'scrapy.contrib.webservice.crawler.CrawlerResource': 1,
'scrapy.contrib.webservice.enginestatus.EngineStatusResource': 1,
'scrapy.contrib.webservice.stats.StatsResource': 1,
}
SPIDER_CONTRACTS = {}
SPIDER_CONTRACTS_BASE = {
'scrapy.contracts.default.UrlContract' : 1,
'scrapy.contracts.default.ReturnsContract': 2,
'scrapy.contracts.default.ScrapesContract': 3,
}
分享到:
相关推荐
- 当COOKIES_ENABLED设置为True时,Scrapy会禁用默认的cookie策略,并使用用户自定义的cookies设置。 例如,用户可以在settings.py中这样设置: ```python COOKIES_ENABLED = True ``` 然后,在自定义的管道或...
二、安装与设置Scrapy 首先,确保已安装Python,然后通过pip命令安装Scrapy: ``` pip install scrapy ``` 接着创建一个新的Scrapy项目,使用以下命令: ``` scrapy startproject myproject ``` 这会在当前目录下...
1. `settings.py`:这是Scrapy项目的配置文件,包含了爬虫的全局设置,如数据存储的数据库连接、中间件配置、下载延迟等。 2. `items.py`:定义了需要爬取的数据结构,如知乎用户的用户名、头像URL、简介等。 3. `...
4. **速率控制**:Scrapy允许设置下载速率限制,防止因过快的下载速度导致的服务器压力或IP被封禁。这可以通过调整`DOWNLOAD_DELAY`设置来实现,或者使用下载器中间件来动态调整速率。 5. **错误处理和重试策略**:...
本篇文章将详细探讨如何将两个强大的Python库——Django和Scrapy结合,以实现通过Django的Web界面控制Scrapy爬虫的运行,并将爬取的数据存入数据库。 首先,让我们了解这两个框架的基本概念。Django是一个高级的Web...
在Scrapy的上下文中,这个库可能用于处理与操作系统交互的任务,比如设置爬虫的工作目录或者创建多线程。 3. **Twisted**: Twisted是一个异步网络编程框架,它允许Scrapy以非阻塞的方式处理网络请求,极大地提高了...
在本案例中,我们将深入探讨如何在Scrapy中设置User-Agent,如何处理IP代理,并简要提及在线打码解决方案。 **一、设置User-Agent** User-Agent是浏览器向服务器发送请求时附带的一种标识,表明了访问者的身份。在...
8. **Scrapy设置** 在Scrapy项目中,可以通过`settings.py`文件配置各种参数,如下载延迟、并发请求的数量、中间件和Pipeline的启用等,以满足特定的爬虫需求。 9. **Scrapy命令行工具** Scrapy提供了一系列...
7. 考虑到反爬策略,可以利用Scrapy的中间件功能,设置User-Agent、延时请求、处理验证码等。 **四、参考JSON数据** 爬取的数据通常会以JSON格式存储,便于后续处理和分析。JSON是一种轻量级的数据交换格式,易于...
在实现翻页功能时,Scrapy通过设置`start_urls`和`parse`方法来处理网页的链接。`start_urls`用于定义爬虫启动时要访问的初始URL,`parse`方法则解析这些页面并找到下一页的链接。使用`scrapy.Request`对象,我们...
### Scrapy 0.22.3:一个强大的网络爬虫框架 #### 一、Scrapy简介 **Scrapy** 是一个用于爬取网站并提取结构化数据的应用框架,广泛应用于数据挖掘、信息处理或历史档案等领域。尽管最初设计是为了进行网页抓取...
8. **Settings**:Scrapy设置允许你配置项目的行为,如更改默认的下载延迟、启用或禁用某些中间件等。 学习Scrapy的过程中,你将了解到如何创建项目、编写Spider、定义Item和Pipeline、配置中间件,以及如何运行和...
它负责决定下一个要爬取的URL,可以设置优先级,控制爬取顺序。 6. **Spider Middleware**: 蜘蛛中间件在Scrapy-Redis中起到连接Scrapy核心和Redis队列的作用,处理请求和响应,如添加或修改请求,处理异常等。 7....
然而,Scrapy项目通常是基于命令行启动的,这意味着在不安装Python和Scrapy的情况下无法直接运行。为了在不依赖Python环境的计算机上运行Scrapy项目,我们可以利用Pyinstaller将其打包成exe文件。 首先,确保你已经...
未维护如果您需要Scrapy的浏览器集成,请考虑使用Scrapy的Pyppeteer集成 该项目提供了一个Scrapy下载处理程序,该处理程序使用执行请求。 它可用于处理需要JavaScript的页面。 该软件包不会干扰常规的Scrapy工作流程...
- **设置**:列出了所有可用的Scrapy设置选项及其默认值。 - **信号**:描述了Scrapy中的信号机制。 - **异常**:列出了Scrapy中可能抛出的各种异常类型。 - **Item导出器**:介绍如何将Item对象转换为不同的格式。 ...
7. **Settings(设置)**:配置文件,允许用户设置Scrapy的各种行为,如下载延迟、请求头、代理服务器等。 8. **Selectors(选择器)**:Scrapy内置了强大的XPath和CSS选择器,用于从HTML或XML文档中提取数据。 ...
学习Scrapy 0.24的中文文档,你可以掌握如何设置和运行一个Scrapy项目,理解基本的爬虫结构,学习如何定义Spider、Item、Pipeline,以及如何使用中间件来定制爬虫行为。这将为你进一步深入到网络数据抓取和数据分析...
20. Settings与Signals:展示了如何配置Scrapy的设置和信号。 21. Exceptions:包含了所有可用的异常和它们的意义。 22. ItemExporters:可以将爬取到的items快速导出到不同格式的文件中。 23. 更新日志(Release...
Scrapy是一个强大的Python爬虫框架,它为网络爬虫的开发提供了高效且便捷的工具集。这个名为"scrapy爬虫实例代码"的压缩包包含了使用Scrapy进行爬虫编程的一些示例,可以帮助初学者更好地理解和掌握Scrapy的用法。 ...