# BaseParser BaseParser为Spiderçåºç±»ï¼ç¨æ¥å®ä¹ä»»å¡ä¸å䏿°æ®è§£æï¼æ¯é¢åç¨æ·æä¾çæ¥å£ ## æºç ```python class BaseParser(object): def start_requests(self): """ @summary: æ·»å åå§url --------- --------- @result: yield Request() """ pass def download_midware(self, request): """ @summary: ä¸è½½ä¸é´ä»¶ å¯ä¿®æ¹è¯·æ±çä¸äºåæ°, æå¯èªå®ä¹ä¸è½½ï¼ç¶åè¿å request, response --------- @param request: --------- @result: return request / request, response """ pass def validate(self, request, response): """ @summary: æ ¡éªå½æ°, å¯ç¨äºæ ¡éªresponseæ¯å¦æ£ç¡® è¥å½æ°å æåºå¼å¸¸ï¼åéè¯è¯·æ± è¥è¿åTrue æ Noneï¼åè¿å ¥è§£æå½æ° è¥è¿åFalseï¼åæå¼å½åè¯·æ± å¯éè¿request.callback_name åºåä¸åçåè°å½æ°ï¼ç¼åä¸åçæ ¡éªé»è¾ --------- @param request: @param response: --------- @result: True / None / False """ pass def parse(self, request, response): """ @summary: é»è®¤çè§£æå½æ° --------- @param request: @param response: --------- @result: """ pass def exception_request(self, request, response): """ @summary: è¯·æ±æè parseréè§£æåºå¼å¸¸çrequest --------- @param request: @param response: --------- @result: request / callback / None (è¿åå¼å¿ é¡»å¯è¿ä»£) """ pass def failed_request(self, request, response): """ @summary: è¶ è¿æå¤§éè¯æ¬¡æ°çrequest å¯è¿åä¿®æ¹åçrequest è¥ä¸è¿årequestï¼åå°ä¼ è¿æ¥çrequestç´æ¥äººredisçfailed表ãå¦åå°ä¿®æ¹åçrequestå ¥failed表 --------- @param request: --------- @result: request / item / callback / None (è¿åå¼å¿ é¡»å¯è¿ä»£) """ pass def start_callback(self): """ @summary: ç¨åºå¼å§çåè° --------- --------- @result: None """ pass def end_callback(self): """ @summary: ç¨åºç»æçåè° --------- --------- @result: None """ pass @property def name(self): return self.__class__.__name__ def close(self): pass ``` ## ä½¿ç¨ ä»¥ç¨åºå¼å§ç»æåè°ä¸¾ä¾ï¼ ```python import feapder class TestSpider(feapder.Spider): def start_callback(self): print("ç¬è«å¼å§äº") def end_callback(self): print("ç¬è«ç»æäº") ```