Rumah > Soal Jawab > teks badan
发现在运行过程中有少量的请求有异常,或者请求响应了404 500之类的,又或者代码本身运行抛异常, 怎么记录这些异常呢。
巴扎黑2017-04-17 17:52:26
Pendekatan semasa saya ialah menggunakan perisian tengah muat turun untuk menangkap permintaan yang gagal, untuk rujukan anda sahaja
class CustomFaillogMiddleware(object):
@classmethod
def from_crawler(cls, crawler):
return cls()
def process_response(self, request, response, spider):
if response.status >= 400:
reason = response_status_message(response.status)
self._faillog(request, u'HTTPERROR',reason, spider)
return response
def process_exception(self, request, exception, spider):
self._faillog(request, u'EXCEPTION', exception, spider)
return request
def _faillog(self, request, errorType, reason, spider):
with codecs.open('log/faillog.log', 'a', encoding='utf-8') as file:
file.write("%(now)s [%(error)s] %(url)s reason: %(reason)s \r\n" %
{'now':datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
'error': errorType,
'url': request.url,
'reason': reason})
迷茫2017-04-17 17:52:26
Adakah anda mahu merekodkan pengecualian melalui log? Scrapy menyediakan fungsi log