文章标题和第一段提取在Imacros

时间:2016-01-14 15:35:52

标签: javascript imacros

我必须每天从多个新闻网站中提取一些信息。具体来说,我必须提取一篇新闻文章:

  1. 标题
  2. URL
  3. 第一段
  4. 我尝试过使用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
    

    是否有代码可以从这两个网站或任何新闻网站中提取标题?

1 个答案:

答案 0 :(得分: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, '');")