NekoRay 的配置文件通常位于项目的根目录下,文件名为 nekoray.cfg 或其他相关名称,以下是一些常见的配置项及其说明:
示例配置文件
# 用户代理
USER_AGENT = "Mozilla/5. (Windows NT 10.; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91..4472.124 Safari/537.36"
# 并发请求数
CONCURRENT_REQUESTS = 2
# 请求超时时间,单位为秒
REQUEST_TIMEOUT = 30
# 指示器保存路径
INDICATOR_FILE = "indicators.csv"
# 日志文件
LOG_FILE = "nekoray.log"
# 下载文件的最大并发数
DOWNLOAD_CONCURRENT = 5
# 禁用重定向
RETRY_ON_REDIRECT = False
# 失败后的重试次数
MAX_RETRIES = 3
# 解析器
PARSER = "html.parser"
#Robots.txt
ROBOTEXCLUSIONLIST = "http://example.com/robots.txt"
# 请求头
HEADERS = {
'User-Agent': USER_AGENT,
'Accept-Language': 'en-US,en;q=.9',
'Accept-Charset': 'UTF-8,*utf-8',
'Referer': 'http://www.example.com',
'DNT': '1'
}
# Cookies
COOKIES = {
'session_id': '123456',
'auth_token': 'abcdef'
}
# 高级设置
PROXY = {
'http': 'http://127...1:3128',
'https': 'http://127...1:3128'
}
# 重写规则
# 使用正则表达式重写URL
@rule(r'^/path/(.+?)/$', replace=r'/\1.html')
def rewrite_url(url):
return url
# 插件配置
@parser('html')
def parse_page(response):
# 自定义解析逻辑
return response.text
# 定时任务
SCHEDULER = {
'interval': 60, # 每隔60秒运行一次
'max_instances': 2
}
# 日志配置
LOG_LEVEL = 'DEBUG'
LOG_FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
LOG_PATH = 'nekoray.log'
# 其他配置
DEFAULT_REQUEST_METHOD = 'GET'
ERROR_ON_HTTPERROR = True
ERROR_ON_HTTPNOTFOUND = True
ERROR_ON_SSL = True
常见配置项解释
USER_AGENT:设置请求头的用户代理信息,避免被网站识别为爬虫。CONCURRENT_REQUESTS:设置并发请求的数量,提高抓取速度。REQUEST_TIMEOUT:设置请求的超时时间,避免长时间无响应。INDICATOR_FILE:设置指示器文件,用于跟踪抓取进度。LOG_FILE:设置日志文件路径,便于监控抓取过程。DOWNLOAD_CONCURRENT:设置下载的最大并发数,适用于下载大文件。RETRY_ON_REDIRECT:设置是否在重定向时进行重试。MAX_RETRIES:设置最大重试次数,避免无限重试。PARSER:设置解析器,解析网页内容。ROBOTEXCLUSIONLIST:设置 robots.txt 文件的路径,避免被网站限制。HEADERS:设置请求头,模拟浏览器访问。COOKIES:设置 Cookies,保持登录状态。PROXY:设置代理服务器,避免被封IP。@rule:定义 URL 重写规则。@parser:定义自定义解析逻辑。SCHEDULER:设置定时任务,自动运行抓取任务。LOG_LEVEL:设置日志级别,控制日志输出量。DEFAULT_REQUEST_METHOD:设置默认请求方法,通常为 GET。ERROR_ON_HTTPERROR:设置 HTTP 错误时的错误处理。ERROR_ON_HTTPNOTFOUND:设置 404 错误时的错误处理。ERROR_ON_SSL:设置 SSL/TLS 错误时的错误处理。
注意事项
- 遵守法律:确保抓取行为符合目标网站的使用政策,避免侵犯隐私或被起诉。
- 使用代理IP:避免被封IP,尤其是在高并发情况下。
- 处理Cookies:确保 Cookies 配置正确,尤其是在需要登录的网站上。
- 处理异常:定义异常处理逻辑,避免抓取失败。
- 测试配置:在实际运行前,使用工具如curl或Postman测试配置是否正确。
- 日志监控:定期查看日志,监控抓取进度和错误。
示例使用
from nekoray import *
# 配置文件内容
from nekoray import *
# 读取配置文件
config = {
'USER_AGENT': 'Mozilla/5. (Windows NT 10.; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91..4472.124 Safari/537.36',
'CONCURRENT_REQUESTS': 2,
'REQUEST_TIMEOUT': 30,
# ... 其他配置
}
# 初始化NekoRay
neko = NekoRay(config)
# 开始抓取
neko.start()
常见问题
ImportError:确保所有配置项在项目中正确导入。ModuleNotFoundError:检查安装的库是否正确安装。ConnectionError:检查代理IP和端口是否正确。TimeoutError:调整REQUEST_TIMEOUT时间。No content found:检查 URL 是否正确,或者设置允许302 重定向。
希望这些建议能帮助您正确配置NekoRay,顺利完成数据抓取任务!如果还有其他问题,请随时提问。









