2017-02-24 63 views
2

我想從PDF鏈接中提取PDF的關鍵字值。我正在抓取包含指向某些PDF的鏈接的網頁。我想創建一個虛擬文檔,我必須將這些PDF排入隊列。我不想抓取這些PDF的內容,但我只想從這些PDF中提取關鍵字。當我用檢查源打開這些PDF鏈接時,它確實有一個關鍵字字段。但它沒有任何關鍵字的價值。它看起來像這樣:如何使用IBM Watson Explorer提取PDF URL的關鍵字屬性?

<div class="row"> 
<span data-l10n-id="document_properties_keywords">Keywords:</span> <p id="keywordsField">-</p> 
</div> 

有什麼辦法從PDF中提取關鍵字?我看到這些PDF包含關鍵字,當我下載這些PDF時,Open PDF屬性和關鍵字具有一定的價值。 參考:https://www.ibm.com/support/knowledgecenter/SS8NLW_10.0.0/com.ibm.swg.im.infosphere.dataexpl.engine.tut.virt.doc/t_cc-build-virt-docs.html

回答

0

我不知道一個開箱即用的方式,但你可以嘗試實現一個爬蟲插件或你自己的爬蟲。有鉤子添加提取元數據和他們在一個履帶添加到索引,例如插件,您可以做這樣的事情

@Override 
    public CrawledData updateDocument(CrawledData crawledData) throws CrawlerPluginException { 

     List<FieldMetadata> metadataList = crawledData.getMetadataList(); 
     String MyPDFProperty= getFromOriginalContent(crawledData.getOriginalContents()); 

// getFromOriginalContent方法,你需要實現PDF文檔

  if (metadataList == null) { 
      metadataList = new ArrayList<FieldMetadata>(); 
      }      

FieldMetadata pdfFieldMetaData = new FieldMetadata("pdfextractedpropertyr", MyPDFProperty); 
       metadataList.add(pdfFieldMetaData); 
       crawledData.setMetadataList(metadataList); 

      } catch (ClientServicesException e) { 

       logger.error(e.getMessage()); 
       throw new CrawlerPluginException(e); 
      } 
      } 
      return crawledData; 
    }