# Item æå ³Itemçç®ä»åå建ï¼å¯åè[å½ä»¤è¡å·¥å ·](command/cmdline?id=_3-å建-item) ## æ°æ®å ¥åº æ°æ®èªå¨å ¥åºï¼é¤äºæ ¹æ®mysql表ç产itemå¤ï¼ä¹å¯ä»¥ç´æ¥ç»itemèµå¼ï¼ç¤ºä¾å¦ä¸ï¼ ``` from feapder import Item item = Item() item.table_name = "spider_data" # 表å item.title = title yield item ``` çä»·äºï¼ 1. çæitem ``` from feapder import Item class SpiderDataItem(Item): """ This class was generated by feapder. command: feapder create -i spider_data. """ def __init__(self, *args, **kwargs): # self.id = None self.title = None ``` 1. ä½¿ç¨ ``` item = SpiderDataItem() item.title = title yield item ``` ## Itemæçº¹ itemæçº¹ç¨äºæ°æ®å ¥åºåçå»éï¼é»è®¤ä¸ºææåæ®µå¼æåºå计ç®çmd5ï¼ä½å½æ°æ®ä¸æééæ¶é´æ¶ï¼è¿ç§æçº¹è®¡ç®æ¹å¼ææ¾ä¸åçãå æ¤æä»¬å¯ä»¥éè¿å¦ä¸æ¹æ³æå®åä¸å»éçkey ``` from feapder import Item class SpiderDataItem(Item): __unique_key__ = ["title", "url"] # æå®å»éçkey为 titleãurlï¼æåçæçº¹ä¸ºtitleä¸urlå¼èå计ç®çmd5 def __init__(self, *args, **kwargs): # self.id = None self.title = None self.url = None self.crawl_time = None ``` æå¯éè¿å¦ä¸æ¹å¼æå®`__unique_key__` ``` item = SpiderDataItem() item.unique_key = ["title", "url"] # æ¯æå表ãå ç»ãå符串 ``` æè éåæçº¹å½æ° ``` from feapder import Item class SpiderDataItem(Item): ... @property def fingerprint(self): return "ææ¯æçº¹" ``` ## å ¥åºå对itemè¿è¡å¤ç pre_to_db彿°ä¸ºæ¯ä¸ªitemå ¥åºåçåè°å½æ°ï¼å¯éè¿æ¤å½æ°å¯¹æ°æ®è¿è¡å¤ç ```python from feapder import Item class SpiderDataItem(Item): def __init__(self, *args, **kwargs): # self.id = None self.title = None def pre_to_db(self): """ å ¥åºåçå¤ç """ self.title = self.title.strip() ``` ## æ´æ°æ°æ® ééè¿ç¨ä¸ï¼å¾å¾ä¼æäºæ°æ®æ¼éæè§£æåºéï¼å¦ææä»¬æ³æ´æ°å·²å ¥åºçæ°æ®ï¼å¯å°Item转为UpdateItem item = SpiderDataItem.to_UpdateItem() æç´æ¥ä¿®æ¹ç»§æ¿ç±» ``` from feapder import Item, UpdateItem class SpiderDataItem(UpdateItem): ... ``` å ³äºUpdateItem使ç¨ï¼è¯¦è§[UpdateItem](source_code/UpdateItem)