2016-01-14 21 views
0

我必須每天從多個新聞站點提取一些信息。具體來說,我要提取的新聞文章的:Imacros中的文章標題和第一段提取

  1. 標題
  2. URL
  3. 第一款

我一直在使用iMacros的嘗試。通過修改我的代碼以適應特定網站的結構,我已成功地從網站中提取數據。我想知道一個代碼是否可以滿足不同的網站結構。

例如,在this article,標題可以通過

TAG POS=1 TYPE=H1 ATTR=CLASS:article-headline EXTRACT TXT 

不過來訪問,this article,我必須修改這個代碼:

TAG POS=1 TYPE H1 ATTR=CLASS:news-title EXTRACT TXT 

是否有能提取碼來自這兩個網站的標題,或者就此而言,任何新聞網站?

回答

0

嘗試下面的代碼,允許你從兩個(及以上)的網站提取標題:

SET arr "[uk.reuters.com , CLASS:article-headline]" 
ADD arr "[www.ansa.it , CLASS:news-title]" 
' here you can add other sites like so: 
' ADD arr "[someSite , attributesForTitle]" 

SET sat EVAL("var arr = '{{arr}}'.split(']['); var sat = {}; for (i in arr) { var a = arr[i].replace(/[\\]\\[]/g, '').split(/\\s*,\\s*/); sat[a[0]] = a[1]; } JSON.stringify(sat);") 
SET attr EVAL("var attr = ''; var sat = JSON.parse('{{sat}}'); for (i in sat) if ('{{!URLCURRENT}}'.indexOf(i) > -1) { var attr = sat[i]; break; } attr.trim();") 

TAG POS=1 TYPE=H1 ATTR={{attr}} EXTRACT=TXT 

你也可以像這樣一個簡單但不嚴格的解決方案:

SET !EXTRACT_TEST_POPUP NO 
SET !TIMEOUT_STEP 0 
TAG POS=1 TYPE=H1 ATTR=CLASS:article-headline EXTRACT=TXT 
TAG POS=1 TYPE=H1 ATTR=CLASS:news-title EXTRACT=TXT 
SET !TIMEOUT_STEP 6 

SET !EXTRACT EVAL("'{{!EXTRACT}}'.replace(/#EANF#/g, '').replace(/\\[EXTRACT\\]/g, '');")