2014-11-03 137 views
0

大約有200個產品編號和相關的產品URL。我必須使用JavaScript代碼將標籤和關鍵字的元標籤提取到每個產品,並將它們輸出到我的計算機中的文件中。怎麼樣 ?如何使用頁面URL爲多個產品頁面提取元標籤?

例如:產品編號:D2650,具有產品網址:http://www.sigmaaldrich.com/catalog/product/sigma/D2650?lang=en&region=US

  • 這類似於199種產品的其餘部分。我需要爲所有這些頁面提取meta關鍵字和meta標題。

幫助與JS代碼應該是有幫助的。

回答

0

如果您使用純JavaScript,你可以做這樣的事情:如果你正在使用jQuery

var metas = document.getElementsByTagName('meta'); //get all the meta tag elements 

//iterate through them 
for (i=0; i<metas.length; i++) { 
    if (metas[i].getAttribute("name") == "keywords") { 
    console.log(metas[i].getAttribute("content")); 
    } 
    else if (metas[i].getAttribute("name") == "description") { 
    console.log(metas[i].getAttribute("content")); 
    } 
} 

上面的代碼可以更簡單:

var keywords = $('meta[name=keywords]').attr("content"); 
var description = $('meta[name=description]').attr("content"); 

我給的代碼根據您分享的url的來源摘錄。您可以修改它以適應您的需求。希望它能讓你從正確的方向開始。

編輯

我能理解你是一個初學者,但我會從開始的整個代碼張貼到只是因爲有這樣做的幾種方法結束不要和它的東西,你應該和如果你嘗試,可以自己學習。這並不困難。

問題的出發點應該是訪問JavaScript中遠程源的html。我們通常使用postget請求來執行此操作,但在瀏覽器中通常不允許跨源網絡請求。檢查this SO answer詳細闡述了這個問題。

現在,一個簡單的解決方法是尋找APIs,它允許你從在線資源中刮取HTML。 YQL(Yahoo Query Language)就是這樣一個工具,可以讓你從遠程來源查詢html。他們有一個非常友好的YQL Console以及生成一個URL,您可以直接發出post請求並查詢html。它也有很好的文檔記錄,應該很容易上手。請嘗試以下YQL查詢在控制檯:

select * from html where url='http://www.sigmaaldrich.com/catalog/product/sigma/D2650?lang=en&region=US' and xpath='/html/head/meta' 

只要看看結果,你只能在XMLJSON返回meta標籤併爲您的YQL查詢生成的custom URL。所以,只需要向該URL發送get/post請求,然後使用我之前發佈的代碼,只要數據以正確格式返回XML即可。如果它返回爲JSON,你將不得不簡單地解析json,這也應該很簡單。

所有這些現在聽起來可能都很複雜,但如果你只是一步一個腳印,就可以自己解決問題。從學習使用YQL控制檯開始,通過javascript提出網絡請求並將其放在一起。它應該是一個有趣的練習。

+0

我對此非常陌生..我需要從開始到結束的代碼.. – Ramesh 2014-11-03 05:13:24

2

根據您需要獲取元數據的頁面集合,此現有API可能會很好地提取您所需的信息。 https://opengraph.io/

這是一個簡單的REST API: GET https://opengraph.io/api/1.0/site/<URL encoded site URL>

它非常適合使用該opengraph標籤頁。而對於其他頁面,它有時可能會抓取其他元數據標籤信息。你可以測試出什麼信息可以發現與測試工具,這裏的特定頁面上: https://opengraph.io/app/#!/debugtool

它是在一個項目上工作很適合我,和額外的時間救了我掛鉤YQL或進行其他的服務器端變化。 [注意:我與本產品或其創作者沒有任何關係。我通過在線研究發現它,並在一個項目中使用它。]