`
beike
  • 浏览: 361801 次
社区版块
存档分类
最新评论

dedecms 采集教程大全

    博客分类:
  • cms
阅读更多

dedecms 采集节点 出现 Parse error the tag 8 fieldname='source'' is incorrect ! 错误的解决办法

SQL运行器中,执行以下代码:
update #@__co_exrule
set  ruleset=replace(ruleset,'fieldname','field name')

或者

用 phpmyadmin 修改 table : dede_co_exrule

将 dede:fieldname='source' 改成 dede:field name='source' 即可解决

 

 

DEDECMS采集基础教程】列表设置篇(一)
------------------------------------------- 

以dede的站长学院>网页制作基础>HTML/XHTML教程为例,地址是 
  

http://www.dedecms.com/web-art/htmlbase/HTML/  
  

一,打开dedecms,进入【采集节点管理】,新建一个节点,模型我们就选择 
图1 
图1  
 


1、名称的话自己定义一个,主要是标识作用。 
2、来源就自己定义个也可以,写上采集对象的信息也可以。 
3、防盗链就看目标站点的有无刷新限制,有的话就设置一下超时时间,这个的话比较难判断,具体可以测试一下就知道。 
4、页面编码就比较重要,可以在页面点击右键来看该页面的编码。 

图2 

图2  
 

三,设置采集列表: 
先看看要采集的信息列表: 
图3 
图3  
 


来源网址很重要的。列表的获取就是从这里获取的。 
自己打开:http://www.dedecms.com/web-art/htmlbase/HTML/  
点击分页看下几个分页之间的URL有什么规则 
由此不难看出其中的规则可以看下面的url例子: 
http://www.dedecms.com/web-art/htmlbase/HTML/list_33 _【除此外其他都一样】.html 
由此我们提取出来的规则就是换为变量值的形式 
[url=http://www.dedecms.com/web-art/htmlbase/HTML/list_33_[var]http://www.dedecms.com/web-art/htmlbase/HTML/list_33_[var[/url]:分页].html 
而变量起始值是1,结束值是3,就代表1至3的列表页了。 

用正则匹配置网址就看本身是否有比较特定的文章网址字符。 
下面的html范围就比较重要,采集的实际文章地址就是从这里获取的。 
我们看原dede的列表。我们在浏览器里查看源文件。 
查找以下代码: 
图4 

图4  
 

上图中选中部分就是文章列表内容的开始处,而且在整个页面中是唯一的,因此我们就提取到了开始的HTML了 
结束的HTML一般可以在列表下面的分页处找到,也是提取在正个页面源码中唯一标识的代码,看下图选中部分: 
图5 

图5  
 


下面的【手工指定网址】就是你想特别采集什么网址,就直接填上即可。

 【DEDECMS采集基础教程】采集规则篇(二)
在上一篇“【DEDECMS采集基础教程】列表设置篇(一)” 中介绍了列表设置的方法,接下来我们进入采集规则的设置,上篇的作用是获取到我们要采集的文章的地址,本篇是介绍如何从文章内容页面采集到文章的内容,也是整个采集模型中最为核心的部分。 
一,设置采集内容: 
本篇将以《HTML语言剖析(六)清单标记》为例子,其链接地址是: 
http://www.dedecms.com/web-art/htmlbase/HTML/20060703/30201.html  
由于该测试文章没有分页,所以我们的配置选择的是“不分页”,因此,分页链接区域html也可以不用填写任何内容,如下图1所示: 
图1 
图1  
 

有分页文章的设置方法将会在以后进行介绍。 

二,内容字段的设置: 
进入这一步,就开始对页面源码进行着重的分析了,采集无非是分析html页面的结构从而获取我们所需的内容。 
所以这里就要求我们对HTML代码有一定的认识,最起码你也该看懂html代码的结构。 
通过查看页面源文件,我们可以查看到页面的html代码。 
1、文章标题: 
最简单的方法是直接搜索这个标题在html代码中出现的位置,例如本篇例文的标题是:HTML语言剖析(六)清单标记,因此直接搜索出来在html代码总总共出现有两处,第一处的代码是 
<title>HTML语言剖析(六)清单标记 - 织梦内容管理系统</title> 
第二处出现的代码是: 
<!--资讯标题--> 
<div class="title"> 
<h1>HTML语言剖析(六)清单标记</h1> 
</div> 
<!--相关信息--> 
由上面两处不难得出,第二处对于我们来捕获该文的标题比较方便,因为不用再去写规则过滤掉一些我们不需要的信息。经过再次搜索全文HTML得出,<h1>和</h1>在文中具有唯一性,因此可以作为获取标题的起止html代码,设置如下图2: 
图2 
图2  
 

2、文章作者: 
如果你不想用该文章上所显示的作者,也可以留空,dede会自动把文章的作者名给你添加上“佚名” 
要采集这个文章作者也不难,经过分析后,可以看出文章作者在HTML代码中出现的位置,先看看下图3中选中部分代码 
图3 
图3  
 

这样文章作者的采集范围我们就可以定下来,其设置如下图4所示: 
图4 
图4  
 

*若文章作者中有包含超链接,其代码表现形式为“<a href="" ……>文章作者</a>”,我们也可以采取过滤规则将其过滤掉,其规则如下: 
{dede:trim}<a([^>]*)>{/dede:trim} 
{dede:trim}</a>{/dede:trim} 
设置方法可以见上图4中的过滤规则。 
3、文章正文: 
要找到文章正文在HTML代码中出现的位置,一个便捷的技巧就是先复制网页中正文的头几个字,然后在html代码中查找,就可以很快定位出来,这也可以方便我们分析代码。 
只要找出文章正文前的唯一性代码和文章结束时的唯一性代码,就可以抓出文章的正文。如下图5所示: 
图5 
图5  
 

因为本文例文是没有分页内容,所以这里的“分页内容字段”不用选,若你想将文章正文中包含的多媒体资源(如图片、视频等)下载到本地服务器,你可以勾上“下载字段里的多媒体资源” 
过滤规则是比较重要的部分,通过正则规则可以将文章中的广告代码或LJ代码、干扰代码过滤掉,不采集下来,若人家文章中有挂了广告,我想你也不想免费给人家挂广告吧。 
至于过滤规则部分将再以后讲解。 

剩下的文章来源,发布时间和录入时间等,都和以上的设置大同小异的,采集与否都无所谓,就看你的需要了。 

三,至此,节点和规则的设置都完成了,接下来就是采集,下载和导出(入库)了。 
最后再强调一点的就是必须懂HTML代码,最起码得能看懂目标页面的html代码的大概组成,知道文章的内容是存放在哪些代码之间。 
下篇预告:进行采集篇,以图文的方式介绍如何进行采集,导出所采集到的数据入库

 【DEDECMS采集基础教程】进行采集篇(三)
经过【DEDECMS采集基础教程】列表设置篇(一)和【DEDECMS采集基础教程】采集规则篇(二)的介绍,我们基本掌握了采集规则 
的写发。这一篇我们将介绍如何进行采集以及采集后的入库。 
一,选择节点,进入采集 
先在我们刚建立好的采集节点前面打勾,然后点“采集”按钮,如图1 
图1 
图1  
 

二,采集详细设置 
图2 
图2  
 

这里可以设置每页采集的数据条数,一般来说不要设置太大,否则有可能导致系统处理不过来而部分采集不到,建议别超过15;线 
程数是指每次有多少个线程同时进行采集,线程数的增加可以加快采集速度,但相应的会增加服务器资源的占用,所以请慎用;假 
若目标站点有防刷新限制,此处就可以根据目标站点的防刷新限制时间进行设置,假如没有就默认0秒可以了。 
附加选项这三个设置从字面上应该可以很容易理解,这就根据你的实际需要进行选择了。 

三,采集后的处理 
采集完成后,点击“查看种子网址”进入查看采集的结果。 
这里罗列出了采集回来的内容。可以点击进去查看采集到的内容有无问题的。具体看图3 
图3 
图3  
 

温馨提醒: 
1、在这个列表中有些数据的是否下载有可能显示的是“未下载”,引起的原因可能是网络的原因引起也有可能是你设置的采集条数 
过大导致的。出现这样的情况我们仅需要在上面采集的“附加选项中”选择“仅下载未下载内容”,然后再进行一次采集即可。 
2、在“节点的种子网址”列表中点击“[源网址]”可进入查看该条采集到的数据所在的原来页面 
3、在“节点的种子网址”列表中点击“内容标题”这一栏的超链接可进入查看采集到的数据是否正确,同时也可以修改里面的内容 
,最后记得保存即可,见图4 

图4 
图4  
 

这里需要注意的是:“dede_archives.sortrank”和“dede_archives.pubdate”这两个字段的内容一般不要修改 
4、假如要删除部分不满意的数据,可以在列表中在你要删除的数据前面打勾,然后按“删除所选网址”即可,这里支持批量操作 
四,将采集的数据入库 
这里有多个入口: 
1、在节点管理列表中选择刚才采集的那个节点,然后点击下面的“导出数据按钮”进入入库操作 
2、直接点击我们刚才采集的那个节点进入采集内容管理页面,点击右上方的“导出采集内容”按钮即可进入入库操作 
3、选择节点后点击“采集”按钮进入采集页面,在右上方有“导出数据”按钮,点击后也可进入入库操作页面 
进入后的入库操作页面见图5 

图5 
图5  
 

首先选择要导入到的栏目,按“请选择”那里即可在弹出的窗口中选择你需要导入的栏目 
发布选项这里一般默认即可,除非你不想马上发布。 
每批导入默认是30条,这里修改与否都无所谓,因为导入操作的速度还是蛮快的 
附带选项一般选“排除重复标题”,至于自动生成HTML那个选项建议先别生成,因为我们还要去批量提取摘要和关键字,这就是后 
话了。 
上面的配置OK以后,接下来就是按“提交”让系统自己去处理了。完成下面会有提示信息。 

到这里,采集教程就基本结束,接下来我会介绍一些过滤规则和分页采集教程。喜欢的朋友敬请关注。 

 【DEDECMS采集基础教程】过滤规则篇(四)
经过前面三篇的介绍,对于dede的采集我们也有基本的了解和操作能力,对于采集简单的内容来说也足够用了。然而对于大多数网站来说,现在广告是网站收入的一个重要来源,因此在网页中常会嵌入广告代码。我们在采集的时候,如何将其过滤掉,从而避免了自己帮别人免费挂广告呢?又例如某些文章里面某些关键词有了他们自己网站上的其他文章链接,你是否愿意让你辛苦采集回来的文章里包含了他的链接?这一切,只需简单的过滤规则,即可给你一篇干净的文章。 
dede的过滤规则并不难写,其写法如下面 
{dede:trim}这里就是要过滤的内容{/dede:trim} 
如果你要过滤的内容比较简单的代码,完全可以直接在“{dede:trim}”和“{/dede:trim}”之间写上,如果比较复杂的就要用到正则了。 
1、例如采集中去除内容里的超链接的规则如下: 
{dede:trim}<a([^>]*)>{/dede:trim} 
{dede:trim}</a>{/dede:trim} 
假如要将所有超链接内容都去除,规则是:{dede:trim}<a([^>]*)>([^<]*)</a>{/dede:trim} 
这两个规则的不同通过下面代码来解释 
例如文章代码中包含着如下内容:<a href="#">超链接</a> 
通过第一个规则,我们采集来的结果是:超链接 
通过第二个规则,我们采集来的结果是:空白,即是将所有内容都过滤掉了。 
2、过滤广告 
对于广告来说,过滤规则就得针对html中看到的内容使用规则了,例如某些广告仅仅是引用某个JS文件,例如 
<script src='/plus/ad_js.php?aid=4' language='javascript'></script> 
这样的规则只需 
{dede:trim}<script(.*)>{/dede:trim} 
{dede:trim}</script>{/dede:trim} 
如果某些广告的内容是JS代码写在<script></script>区间里的,例如GG的广告,那么过滤规则应该是: 
{dede:trim}<script>(.*)</script>{/dede:trim} 
3、下面是一些常识用的过滤规则 
{dede:trim}<!--(.*)-->{/dede:trim} 
{dede:trim}<select([^>]*)>([^>]*)</select>{/dede:trim} 
{dede:trim}<option([^>]*)>([^>]*)</option>{/dede:trim} 
{dede:trim}<select([^>]*)>{/dede:trim} 
{dede:trim}</select>{/dede:trim} 
{dede:trim}<param([^>]*)>{/dede:trim} 
{dede:trim}<embed([^>]*)>([^>]*)</embed>{/dede:trim} 
{dede:trim}<embed([^>]*)>{/dede:trim} 
{dede:trim}</embed>{/dede:trim} 
{dede:trim}<object([^>]*)>([^>]*)</object>{/dede:trim} 
{dede:trim}<object([^>]*)>{/dede:trim} 
{dede:trim}</object>{/dede:trim} 
{dede:trim}<OBJECT([^>]*)>([^>]*)</OBJECT>{/dede:trim} 
{dede:trim}<OBJECT([^>]*)>{/dede:trim} 
{dede:trim}</OBJECT>{/dede:trim} 
{dede:trim}<iframe([^>]*)>([^>]*)</iframe>{/dede:trim} 
{dede:trim}<iframe([^>]*)>{/dede:trim} 
{dede:trim}</iframe>{/dede:trim} 
{dede:trim}<IFRAME([^>]*)>([^>]*)</IFRAME>{/dede:trim} 
{dede:trim}<IFRAME([^>]*)>{/dede:trim} 
{dede:trim}</IFRAME>{/dede:trim} 
{dede:trim}<font([^>]*)>([^<]*)</font>{/dede:trim} 
{dede:trim}<font([^>]*)>{/dede:trim} 
{dede:trim}</font>{/dede:trim} 
{dede:trim}<a([^>]*)>([^<]*)</a>{/dede:trim} 
{dede:trim}<a([^>]*)>{/dede:trim} 
{dede:trim}</a>{/dede:trim} 
{dede:trim}<td([^>]*)>([^>]*)</td>{/dede:trim} 
{dede:trim}<td([^>]*)>{/dede:trim} 
{dede:trim}</td>{/dede:trim} 
{dede:trim}<tr([^>]*)>([^>]*)</tr>{/dede:trim} 
{dede:trim}<tr([^>]*)>{/dede:trim} 
{dede:trim}</tr>{/dede:trim} 
{dede:trim}<tbody([^>]*)>([^>]*)</tbody>{/dede:trim} 
{dede:trim}<tbody>{/dede:trim} 
{dede:trim}</tbody>{/dede:trim} 
{dede:trim}<table([^>]*)>([^>]*)</table>{/dede:trim} 
{dede:trim}<table([^>]*)>{/dede:trim} 
{dede:trim}</table>{/dede:trim} 
{dede:trim}<span([^>]*)>{/dede:trim} 
{dede:trim}</span>{/dede:trim} 
{dede:trim}</IFRAME>{/dede:trim} 
{dede:trim}<script>(.*)</script>{/dede:trim} 
{dede:trim}<script(.*)>{/dede:trim} 
{dede:trim}</script>{/dede:trim} 

----------------------------------- 
对于下面这些规则就请慎用 
----------------------------------- 
{dede:trim}<div(.*)>{/dede:trim} 
{dede:trim}</div>{/dede:trim} 
{dede:trim}<stong>{/dede:trim} 
{dede:trim}</stong>{/dede:trim} 
{dede:trim}<div(.*)>(.*)</div>{/dede:trim} 
{dede:trim}<center(.*)>{/dede:trim} 
{dede:trim}</center>{/dede:trim} 
{dede:trim}<p(.*)>{/dede:trim} 
{dede:trim}</p>{/dede:trim} 
{dede:trim}<span(.*)>{dede:trim} 
{dede:trim}</span>{dede:trim} 
{dede:trim}<img(.*)>{/dede:trim} 
{dede:trim}<div(.*)>{/dede:trim} 
{dede:trim}</div>{/dede:trim} 
以上就是本篇要介绍的内容,正则也许并不是每处都用得上,但当你了解其写法后,自己也可以写出一些更加适合自己使用的规则出来。

 【DEDECMS采集基础教程】分页采集篇(五)
分页采集,一直是困扰很多站长的问题,对于文章内容的采集来说,并不难,最难的莫过于分页采集。因为多种多样的分页格式,在采集的时候怎样去取分页的区域,怎样才不会采集回来重复的内容,这确实是个头疼的问题。有次johnny在写采集规则的时候就因为疏忽,结果采集回来的文章内容重复了,所以johnny决定单独写此文来。在写本文的时候,johnny也思考过该怎么去写好本文,毕竟在这方面johnny也不是懂很多,希望能和各位一起学习研究。 
接下来就以一个例子来分析,本次的例子网址是: 
http://www.ladysfashion.cn/dress/dapei/20080321/1319.html  
1、打开本文例子网址,把页面拉到下面,可以看到其分页,见下面图1: 

图1 
图1  
 


这是典型的DEDE分页,有上下页,也列出了所有的分页。对于这种分页,我们在采集规则时,在“文档是否分页”一项中选择的是“全部列出的分页列表”。例如某些文档的翻页仅有上下也方式或者仅仅列出部分页码,其余内容用“...”或“更多”这种方式,那这项应选择的是“上下页形式或不完整的分页列表”。 
对于分页类型的判断,我们应当多打开几个文章看看其翻页方式,再来决定选择分页方式,特别有些文章仅有单页并没有多页内容,他的翻页也就相应的没有,往往我们很容易的以为他的文章并没有分页,导致某些有分页的文章采集不到多页内容。分页方式的选择决定了采集回来的内容的完整性。 
下面以一个错误的例子看看选择错误导致采集回来的内容重复: 
在采集本文例子页面的时候,这里我选择的是“上下页形式或不完整的分页列表”,测试的时候是正常可以采集到内容,但当真正采集的时候,发觉采集回来的内容重复了,采集回来的结果看下图2: 

图2 
图2  
 


若将上面例子的方式改为“全部列出的分页列表”,这样采集回来的结果见下图3: 

图3 
图3  
 


从图2跟图3的对比,后者不会产生重复内容,而且在文章首行也不会多出“#e#”这个来。 
举出这两个例子也是为说明此处选择的重要性。 
2、分页链接区域匹配规则 
这部分的选择也是有一定的技巧。假如有些文章有单页形式,也有多页形式,这时我们应打开有多页的文章 ,然后查看其源文件。 
例如本文例子,我们首先要找到其分页区域HTML代码,见下图4选中部分: 

图4 
图4  
 


接下来是选出具有唯一标识的代码作为分页链接区域的起始HTML,这点类似于其他部分的采集。本文例子的配置如下图5: 

图5 
图5  
 


3、规则写好以后,在“采集节点管理”页面中的“测试”按钮可以测试采集规则能否采集到内容。但对于分页采集,该功能并不能测试出分页采集规则写得对不对。所以最好的方式是把采集规则的来源网址中分页变量起始值改为1页,然后实际采集,再看看采集回来的内容是否正确,若有错误就修改分页采集部分,再清空节点采集到的内容,再采集,如此反复直至完美为止。 

至此,采集教程也就告一段落了,也许以后有时间johnny会再整理出采集模型的相关教程。若有什么问题,欢迎到本站给我留言一起研究学习或者到dede官方论坛去交流,那里的高手很多。

分享到:
评论

相关推荐

    最新织梦采集侠v2.7破解版采集插件 附带教程

    织梦采集侠2.7安装教程 安装:  以前安装过其他版本的,如2.6等从第一步开始,全新安装从第二步开始。 先卸载之前的织梦采集侠。登录网站后台,依次点击模块-模块管理,找到织梦采集侠,点击卸载。然后直接点击确定...

    DEDE自动采集伪原创发布更新一体化插件下载及安装教程

    ### DEDE自动采集伪原创发布更新一体化插件下载及安装教程 #### 一、插件简介与背景 在网站建设和内容管理过程中,自动采集、伪原创处理以及内容发布是提高工作效率的重要手段。DEDECMS(织梦内容管理系统)作为一...

    DedeCMSV5.6版自动采集功能规则使用基本知识详细讲解教程借鉴.pdf

    《DedeCMS V5.6版自动采集功能规则使用基本知识详细讲解》 DedeCMS V5.6版本引入的自动采集功能,旨在为网站管理者提供一种高效、系统化的数据获取方式,从而减轻手动复制粘贴的工作量。采集,简单来说,就是利用...

    神箭手云采集插件

    "dede采集"是其核心功能之一,这表明它与DEDECMS(织梦内容管理系统)有良好的兼容性,能够方便地为使用该系统的用户进行网站内容的自动采集。无论是新闻、产品信息,还是用户评论,都可以通过神箭手云采集进行快速...

    织梦采集插件支持伪原创自动采集inst.rar

    5. **易用性**:织梦采集插件的安装和使用过程通常简单直观,inst文件可能包含了详细的安装指南和使用教程,使得即便是没有太多技术背景的用户也能轻松上手。 6. **安全性**:在进行采集和伪原创过程中,用户需要...

    kaixin.zip_V2 _酒店官网dedecms

    综上所述,"kaixin.zip_V2 _酒店官网dedecms"是一个基于DEDECMS V5.7 SP1的酒店网站模板,内置采集侠插件,提供了丰富的功能和自定义可能性,适用于搭建专业且易于维护的酒店官网。用户可以通过提供的安装教程快速...

    织梦采集侠无域名限制

    【织梦采集侠无域名限制】是一款针对织梦CMS(DedeCMS)系统的高效自动采集工具,具有多项功能,旨在优化网站内容更新流程并提升SEO效果。这款2.6全新升级版的采集侠插件取消了对特定域名的限制,意味着用户可以广泛...

    织梦采集规则

    织梦采集规则是一种在互联网数据抓取领域中广泛使用的工具,尤其对于基于织梦(DedeCMS)内容管理系统构建的网站来说,它的重要性不言而喻。织梦采集规则允许用户自动化地从不同来源获取数据,如新闻、文章、图片等...

    TOM猫安卓市场整站程序采用dedecms开发,全站可生成HTML,带采集规则

    TOM猫安卓市场整站源码程序 手机应用软件下载站 ...TOM猫安卓市场整站程序采用dedecms开发,全站可生成HTML,带采集规则,内容更新方便,适合用来做手机应用软件下载站最合适了,而且做广告联盟效果也不错。

    采集侠2.7_无限制-004wan.com.zip

    其次,“织梦采集侠定向采集设置教程.doc”是一份非常实用的操作指南,专门针对织梦内容管理系统(DedeCMS)的用户。织梦采集侠能帮助用户快速、准确地从织梦系统中采集所需内容,如文章、新闻等。该教程将详细介绍...

    织梦笑话娱乐网站源码,2W数据+36条采集规则

    【标题】"织梦笑话娱乐网站源码,2W数据+36条采集规则"指的是一个基于织梦(DedeCMS)内容管理系统构建的专门用于发布笑话和娱乐内容的网站源代码。这个源码包含大约两万个预先填充的笑话数据,以及36个不同的数据...

    dede3.1分页文字采集过滤规则详说(图文教程)续四

    《dede3.1分页文字采集过滤规则详说(图文教程)续四》这篇文章主要讲述了在使用dede3.1系统进行网页内容采集时,如何设置有效的分页过滤规则,以便精确地获取所需信息并剔除无用的内容。分页文字采集过滤规则是内容...

    dede3.1分页文字采集过滤规则详说(图文教程)续二

    ### dede3.1分页文字采集过滤规则详解(图文教程续二) #### 一、引言 在上一篇文章中,我们已经介绍了dedeCMS3.1版本中基础的文字采集与过滤规则设置方法。本文将继续深入探讨如何针对具有分页功能的目标网站进行...

    吃货网整站源码(含数据+采集) v5.7

    环境需求:PHP+MYSQL编码语言:UTF8安装教程:在压缩内制作了详细的安装教程,请对照使用修复说明:完善了缺失的dedecms调用标签增加了底部通用模板footer.htm修复了顶部遗留的暗链LOGO修改地址\templets\style\css\...

    火车头PHPCMS2008SP4 文章免登陆发布接口

    视频教程则提供了另外两个内容管理系统(DedeCMS和帝国CMS)的接口使用示例。 注意事项提醒用户: 1. 该接口仅适用于发布文章到PHPCMS2008频道内容模型为普通文章的栏目; 2. 接口基于PHPCMS2008SP4GBK版制作,适用...

    织梦Dede手册

    《织梦Dede手册》是针对织梦内容管理系统(DedeCMS)的一份详尽教程,旨在帮助用户深入了解和熟练掌握这一广泛使用的开源CMS平台。织梦DedeCMS以其易用性和灵活性,深受广大网站开发者和管理员的喜爱。下面将根据...

    SEO-python养权重站教程.pdf

    在这个"SEO-python养权重站教程"中,重点讲述了如何运用Python这一编程语言进行SEO优化,特别是针对权重站的建设和提升。权重站指的是在搜索引擎中具有较高权重的网站,这样的站点通常能获得更好的搜索结果排名和更...

Global site tag (gtag.js) - Google Analytics