docs: def process_item(self, item, spider):
          '''
          将从图片处理管道流过的数据模型中的缩略图链接更新到文章中的相应图片 URL 上，
          并对其中的，已删除图片 ``item['image_urls_removed']`` 进行处理，
          使其显示内建的删除图标。
  
          最终使用文章模板，对数据模型中的数据进行渲染并输出到指定路径中，完成本地化，
          等待最终 ``mobi`` 打包
  
          :param item: 爬取到的数据模型
          :type item: :class:`.MoearPackageMobiItem` or dict
          :param spider: 当前爬虫对象
          :type spider: :class:`.MobiSpider`
          '''
          soup = BeautifulSoup(item.get('content', ''), "lxml")
          if item.get('images'):
              # 将content中的全部img替换为本地化后的url
              img_list = soup.find_all('img')
              for i in img_list:
                  img_src = i.get('src')
  
                  # 删除image_urls_removed中的img，避免由于未本地化造成mobi生成失败
                  if img_src in item.get('image_urls_removed', []):
                      i['src'] = '../icons/delete.jpg'
  
                  for result in item.get('images', []):
                      if img_src == result['url']:
                          i['src'] = os.path.join('..', 'images', result['path'])
                          spider._logger.debug(
                              '文章({})的正文img保存成功: {}'.format(
                                  item['title'], img_src))
                          break
  
              # 填充toc_thumbnail路径值
              for result in item['images']:
                  if item['cover_image'] == result['url']:
                      item['toc_thumbnail'] = os.path.join(
                          'images', result['path'])
                      break
  
          # 过滤掉不支持的标签
          unsupport_tag = spider.options.get('kindlegen_unsupport_tag', [])
          for tag in unsupport_tag:
              for i in soup.find_all(tag):
                  delete_img = soup.new_tag('img')
                  delete_img['src'] = '../icons/delete.jpg'
                  i.replace_with(delete_img)
  
          item['content'] = str(soup.div)
  
          # 将item['content']保存到本地
          article_html_name = hashlib.md5(to_bytes(item['url'])).hexdigest()
          html_name = '{}.html'.format(article_html_name)
          item['url_local'] = os.path.join('html', html_name)
          page_store = os.path.join(spider.build_source_dir, item['url_local'])
  
          # 将item中的生成字段添加到post中
          idx = 0
          post = None
          for section in spider.data.items():
              for p in section[1]:
                  idx += 1
                  if p.get('origin_url') == item.get('url'):
                      post = p
                      p['idx'] = 'post_{:0>3}'.format(idx)
                      p['playOrder'] = idx
                      p['content'] = item.get('content')
                      p['url_local'] = item.get('url_local')
                      p['toc_thumbnail'] = item.get('toc_thumbnail')
  
                      # 若为最后一篇文章，则添加相应标志
                      if idx == spider.post_num:
                          spider._logger.info(
                              '标记为最后一篇文章: {}'.format(p.get('title')))
                          p['last_one'] = True
                      break
  
          # 创建目标dirname
          dirname = os.path.dirname(page_store)
          if not os.path.exists(dirname):
              os.makedirs(dirname)
  
          # 基于预设模板，将文章正文本地化
          with codecs.open(page_store, 'wb', 'utf-8') as fh:
              fh.write(spider.template_post.render(
                  post=post,
                  options=spider.options))
  
          # 为优化log打印信息，清空已处理过的字段
          item.pop('content', '')
          item.pop('image_urls', [])
          item.pop('images', [])
  
          return item