我是scrapy的新手,它是我知道的惊人的爬虫框架!
在我的项目中,我发送了超过90,000个请求,但其中一些请求失败了.我将日志级别设置为INFO,我只能看到一些统计信息,但没有详细信息.
2012-12-05 21:03:04+0800 [pd_spider] INFO: Dumping spider stats:
{'downloader/exception_count': 1,
'downloader/exception_type_count/twisted.internet.error.ConnectionDone': 1,
'downloader/request_bytes': 46282582,
'downloader/request_count': 92383,
'downloader/request_method_count/GET': 92383,
'downloader/response_bytes': 123766459,
'downloader/response_count': 92382,
'downloader/response_status_count/200': 92382,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2012, 12, 5, 13, 3, 4, 836000),
'item_scraped_count': 46191,
'request_depth_max': 1,
'scheduler/memory_enqueued': 92383,
'start_time': datetime.datetime(2012, 12, 5, 12, 23, 25, 427000)}
Run Code Online (Sandbox Code Playgroud)
有没有办法获得更多细节报告?例如,显示那些失败的URL.谢谢!
我是 Scala 的新手,对流关闭机制不熟悉。我写了一些这样的代码。
def loadResourceAsString(path: String) = {
val is = this.getClass().getResourceAsStream(path)
Source.fromInputStream(is).getLines().mkString("\n")
}
Run Code Online (Sandbox Code Playgroud)
我在 Scala 源代码中找到了这个。该Source会返回一个BufferedSource其覆盖close方法关闭输入流。
def fromInputStream(is: InputStream)(implicit codec: Codec): BufferedSource =
createBufferedSource(is, reset = () => fromInputStream(is)(codec), close = () => is.close())(codec)
Run Code Online (Sandbox Code Playgroud)
如果有异常,scala 会通过自己的机制执行close方法吗?
或者,我应该像 java 一样显式关闭finally块中的输入流吗?
我正在尝试使用jmeter对我的AWS自动缩放组进行性能测试.
首先,我进行了扩大/缩小测试.我将阈值设置为70%cpu利用率2个周期,每个周期为2分钟.ELB工作正常,并且在系统向外扩展后,请求被分发到自动扩展组中的所有EC2实例,尽管不相等.
接下来,我想测试两个实例的加载是否是一个实例的两倍.我修复了自动缩放组的实例编号,我将最小/最大/期望实例计数设置为2.当我从单个JMeter推送负载时,总是只有一个实例工作且其cpu利用率几乎达到100%,但是另一个实例的cpu利用率仍为零....如果我从包含多个从属的JMeter集群推送负载,则所有实例都会加载.
有人说,也许负载不够重,所以ELB认为只有一个实例可以处理它并且没有向其他实例发送请求.我不这么认为,因为我只是从这个JMeter集群的一个slave推送负载,但是我增加了负载,只有一个实例处理请求.
我发现一个博客说ELB在HA方面很棒,但没有负载平衡. https://www.stackdriver.com/elb-affinity-problems 但是,我不认为只有一个实例处理请求的行为是正常的.
ELB负载平衡机制到底是什么?我糊涂了.
amazon-elb ×1
autoscaling ×1
jmeter ×1
python ×1
report ×1
scala ×1
scrapy ×1
stream ×1
web-scraping ×1