(self, failure)
| 102 | return True |
| 103 | |
| 104 | def error_parse(self, failure): |
| 105 | request = failure.request |
| 106 | self.log('error_parse value:%s url:%s meta:%s' % (failure.value, request.url, request.meta)) |
| 107 | |
| 108 | proxy = failure.request.meta.get('proxy_info') |
| 109 | table = failure.request.meta.get('table') |
| 110 | |
| 111 | if table == self.name: |
| 112 | self.sql.del_proxy_with_id(table_name = table, id = proxy.id) |
| 113 | else: |
| 114 | # TODO... 如果 ip 验证失败应该针对特定的错误类型,进行处理 |
| 115 | pass |
| 116 | |
| 117 | # |
| 118 | # request = failure.request.meta |
| 119 | # utils.log('request meta:%s' % str(request)) |
| 120 | # |
| 121 | # # log all errback failures, |
| 122 | # # in case you want to do something special for some errors, |
| 123 | # # you may need the failure's type |
| 124 | # self.logger.error(repr(failure)) |
| 125 | # |
| 126 | # #if isinstance(failure.value, HttpError): |
| 127 | # if failure.check(HttpError): |
| 128 | # # you can get the response |
| 129 | # response = failure.value.response |
| 130 | # self.logger.error('HttpError on %s', response.url) |
| 131 | # |
| 132 | # #elif isinstance(failure.value, DNSLookupError): |
| 133 | # elif failure.check(DNSLookupError): |
| 134 | # # this is the original request |
| 135 | # request = failure.request |
| 136 | # self.logger.error('DNSLookupError on %s', request.url) |
| 137 | # |
| 138 | # #elif isinstance(failure.value, TimeoutError): |
| 139 | # elif failure.check(TimeoutError): |
| 140 | # request = failure.request |
| 141 | # self.logger.error('TimeoutError on url:%s', request.url) |
| 142 | |
| 143 | def save_page(self, ip, data): |
| 144 | filename = '{time} {ip}'.format(time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S:%f'), ip = ip) |
nothing calls this directly
no test coverage detected