作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在关注 Spidermon 关于监控 Spiders 的文档,在他们的示例中,他们创建的监视器似乎运行在他们所有的 Spiders 上,我无法弄清楚如何在单个 Spider 上运行监视器。
我试过将我的 Spider 传递到 test_min_items,但我不知道在哪里设置它。
from spidermon import Monitor, MonitorSuite, monitors
@monitors.name('Item count')
class ItemCountMonitor(Monitor):
@monitors.name('Minimum number of items')
def test_min_items(self):
item_extracted = getattr(
self.data.stats, 'item_scraped_count', 0)
minimum_threshold = 10
msg = 'Extracted less than {} items'.format(
minimum_threshold)
self.assertTrue(
item_extracted > minimum_threshold, msg=msg
)
class SpiderCloseMonitorSuite(MonitorSuite):
monitors = [
ItemCountMonitor
]
最佳答案
有不同的方法可以实现这一点。
@monitors.name('Item count')
class ItemCountMonitor(Monitor):
@monitors.name('Minimum number of items')
def test_min_items(self):
if self.data.spider.name == "somespider":
... # Do something
else:
... # Do other thing
# spider1.py
class MySpider1(scrapy.Spider):
name = 'myspider1'
custom_settings = {
'SPIDERMON_SPIDER_CLOSE_MONITORS': (
'myproject.Spider1MonitorSuite',
)
}
# spider2.py
class MySpider2(scrapy.Spider):
name = 'myspider2'
custom_settings = {
'SPIDERMON_SPIDER_CLOSE_MONITORS': (
'myproject.Spider2MonitorSuite',
)
}
对于每个 MonitorSuite,您只包含对 wach spider 有意义的监视器。
custom_setting
为每个蜘蛛设置不同的 SPIDERMON_MIN_ITEMS
设置。 关于python - 如何使用 Spidermon 监控特定的蜘蛛?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56932218/
我正在关注 Spidermon 关于监控 Spiders 的文档,在他们的示例中,他们创建的监视器似乎运行在他们所有的 Spiders 上,我无法弄清楚如何在单个 Spider 上运行监视器。 我试过
我是一名优秀的程序员,十分优秀!