2.5 scrapy的内置服务介绍
来源:互联网 发布:腾讯手游助手网络异常 编辑:程序博客网 时间:2024/06/10 21:08
- 5 scrapy的内置服务介绍
- logging日志服务
- 基本使用方法
- 在scrapy中使用
- 在settingspy中配置
- stats collections
- 基本操作
- 内置可用收集器
- sending-email
- 基本使用方法
- mailsender类
- mail settings
- logging日志服务
2.5 scrapy的内置服务介绍
logging日志服务
logging的等级:
- logging.CRITICAL - for critical errors (highest severity)
- logging.ERROR - for regular errors
- logging.WARNING - for warning messages
- logging.INFO - for informational messages
- logging.DEBUG - for debugging messages (lowest severity)
基本使用方法
三种基本使用方法:
# 1.简单使用import logginglogging.warning("this is a warning")# 2.通用的记录日志的方法,可加入日志的级别import logginglogging.log(logging.WARNING,"this is a warning")# 3.通过logger记录日志import logginglogger = logging.getLogger(__name__)logger.warning("this is a warning")
在scrapy中使用
- 在spider中直接使用
import scrapyclass MySpider(scrapy.Spider): # 因为MySpider继承了scrapy.Spider,所以自带了logger name = 'myspider' start_urls = ['http://scrapinghub.com'] def parse(self, response): self.logger.info('Parse function called on %s', response.url)
- 可以自己改名字
import loggingimport scrapylogger = logging.getLogger('mycustomlogger') # 给自己的logger取名字为mycustomloggerclass MySpider(scrapy.Spider): name = 'myspider' start_urls = ['http://scrapinghub.com'] def parse(self, response): logger.info('Parse function called on %s', response.url)
在settings.py中配置
These settings can be used to configure the logging:
- LOG_FILE
- LOG_ENABLED
- LOG_ENCODING
- LOG_LEVEL
- LOG_FORMAT
- LOG_DATEFORMAT
- LOG_STDOUT
stats collections
Scrapy提供了方便的收集数据的机制。数据以key/value方式存储,值大多是计数值。该机制叫做数据收集器(Stats Collector)。
通过 stats 属性来使用数据收集器。 下面是在扩展中使用状态的例子:
基本操作
class ExtensionThatAccessStats(object): def __init__(self, stats): self.stats = stats @classmethod def from_crawler(cls, crawler): return cls(crawler.stats)
设置数据:
stats.set_value('hostname', socket.gethostname())
增加数据值:
stats.inc_value('pages_crawled')
当新的值比原来的值大时设置数据:
stats.max_value('max_items_scraped', value)
当新的值比原来的值小时设置数据:
stats.min_value('min_free_memory_percent', value)
获取数据:
>>> stats.get_value('pages_crawled')8
获取所有数据:
>>> stats.get_stats(){'pages_crawled': 1238, 'start_time': datetime.datetime(2009, 7, 14, 21, 47, 28, 977139)}
内置可用收集器
# 记录内存的只能在linux中使用class scrapy.statscollectors.MemoryStatsCollector# 信息清道收集器class scrapy.statscollectors.DummyStatsCollector
sending-email
虽然Python通过 smtplib 库使得发送email变得很简单,Scrapy仍然提供了自己的实现。 该功能十分易用,同时由于采用了 Twisted非阻塞式(non-blocking)IO ,其避免了对爬虫的非阻塞式IO的影响。 另外,其也提供了简单的API来发送附件。 通过一些 settings 设置,您可以很简单的进行配置。
基本使用方法
有两种方法可以创建邮件发送器(mail sender)。 您可以通过标准构造器(constructor)创建:
from scrapy.mail import MailSendermailer = MailSender()
或者您可以传递一个Scrapy设置对象,其会参考 settings:
mailer = MailSender.from_settings(settings)
这是如何来发送邮件了(不包括附件):
mailer.send(to=["someone@example.com"], subject="Some subject", body="Some body", cc=["another@example.com"])
mailsender类
初始化参数:
class scrapy.mail.MailSender(smtphost=None, mailfrom=None, smtpuser=None, smtppass=None, smtpport=None)
参数:
smtphost (str) – 发送email的SMTP主机(host)。如果忽略,则使用 MAIL_HOST 。mailfrom (str) – 用于发送email的地址(address)(填入 From:) 。 如果忽略,则使用 MAIL_FROM 。smtpuser – SMTP用户。如果忽略,则使用 MAIL_USER 。 如果未给定,则将不会进行SMTP认证(authentication)。smtppass (str) – SMTP认证的密码smtpport (int) – SMTP连接的短裤smtptls – 强制使用STARTTLSsmtpssl (boolean) – 强制使用SSL连接
classmethod from_settings(settings)使用Scrapy设置对象来初始化对象。其会参考 这些Scrapy设置.send(to, subject, body, cc=None, attachs=(), mimetype='text/plain')发送email到给定的接收者。
mail settings
这些设置定义了 MailSender 构造器的默认值。其使得在您不编写任何一行代码的情况下,为您的项目配置实现email通知的功能。
MAIL_FROM默认值: 'scrapy@localhost'用于发送email的地址(address)(填入 From:) 。MAIL_HOST默认值: 'localhost'发送email的SMTP主机(host)。MAIL_PORT默认值: 25发用邮件的SMTP端口。MAIL_USER默认值: NoneSMTP用户。如果未给定,则将不会进行SMTP认证(authentication)。MAIL_PASS默认值: None用于SMTP认证,与 MAIL_USER 配套的密码。MAIL_TLS默认值: False强制使用STARTTLS。STARTTLS能使得在已经存在的不安全连接上,通过使用SSL/TLS来实现安全连接。MAIL_SSL默认值: False强制使用SSL加密连接。
阅读全文
1 0
- 2.5 scrapy的内置服务介绍
- 4、scrapy内置服务
- Scrapy笔记(7)- 内置服务
- Scrapy的安装介绍
- angularjs的内置服务
- Scrapy抓取框架的介绍
- AngularJS 别有洞天的内置服务
- MacOS内置的字典服务
- scrapy介绍
- Scrapy介绍
- Scrapy的学习——安装介绍
- 5.基本概念介绍-scrapy的重要组件
- Scrapy:Python的爬虫框架----原理介绍
- 《Learning Scrapy》1 Scrapy介绍
- scrapy学习--内置Spiders简介
- Hive的几种内置服务
- Hive的几种内置服务
- AngularJS内置的一些服务之$http
- css 样式学习
- LeetCode (31)Next Permutation
- spine导出二进制文件怎么导入unity
- java.lang.ClassNotFoundException: javassist.ClassPath解决
- [OpenCV] 摄像机标定 + 三维重建
- 2.5 scrapy的内置服务介绍
- ScrollView长图分享到微信
- 读写流
- Python字典排序
- #第一次写博客
- 使用外置js实现对html的页面做一些增删改查的操作
- CCPC第十一届东北地区大学生程序设计竞赛(2017) 总结
- mysql上的时间取出来后与数据库存储的时间对不上
- LeetCode 461. Hamming Distance (计算二进制数中1的位数)