千家信息网

Golddata如何采集需要登录/会话的数据?

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,概要本文将介绍使用GoldData半自动登录功能,来采集需要登录网站的数据。GoldData半自动登录功能,就是指通过脚本来执行登录,如果需要验证码或者其它内容需要人工输入时,可以通过收发邮件来执行登
千家信息网最后更新 2026年11月04日Golddata如何采集需要登录/会话的数据?

概要

本文将介绍使用GoldData半自动登录功能,来采集需要登录网站的数据。GoldData半自动登录功能,就是指通过脚本来执行登录,如果需要验证码或者其它内容需要人工输入时,可以通过收发邮件来执行登录流程。

下载例子

为了讲解方便,我们以采集mydict的单词数据来讲解采集需要登录的网站数据。这个mydict例子程序可以从开源网站下载到( https://github.com/TheGoldData/mydict/releases ,或 https://gitee.com/golddata/mydict/attach_files )。

下载之后,打开命令行,运行下面的命令就可以启动例子程序。

java -jar mydict.war

启动之后,打开浏览器,输入网址http://localhost:8080/打开一个登录页面。如下图所示:

输入用户名和密码(都是admin),就可以打开首页单词列表。

编写登录和检查会话脚本

点击"采集管理》网站管理",点击"添加"按扭,添加名为mydict的站点。如下所示:

接下来配制登录和检查会话脚本,点击"设置半自动登录",会打开站点半自动登录配制页面,如下图所示:

登录脚本如下:

//发送ajax请求验证码var va=$ajax('http://localhost:8080/code/vcode?timestamp=1554001708730',{encoding:false});var arg_={label:site.name+"验证码",type:1,content:va.content}//waitForInput内置函数将发送邮件,并等待输入//(回复邮件,或者goldData平台输入),//并把输入内容当作验证码返回。var code=waitForInput(arg_);var data="username=admin&password=admin&vcode="+codevar m=new  Map()m.put('Cookie',va.cookie)//发送ajax请求执行登录var content=$ajax('http://localhost:8080/doLogin',{method:'POST',headers:m,data:data})//如果正确,将返回状态1(登录成功),和headers信息给GoldData,//否则返回0(登录失败)!if(content.headers){m.putAll(content.headers)}var ret={status:1,headers:m}if(content.status!=200){    ret.status=0}ret

检查脚本如下:

var ret=true;if(html.contains("我的单词-登录")){ret=false}ret;

配制好之后,我们回到网站管理页面,点击"启动登录",则会开始执行"自动登录",这之后,点击"查询"按扭来刷新页面,可以看到"等待输入"的状态。如下图所示:

此时,您设置的通知邮箱,也应该同时收到了邮件。点开邮件,或者点击页面上的"录入等待输入"按扭,将会看到如下内容:

依据邮件内容,回复邮件"{{qcxe}}",就可以让程序继续执行。在golddata页面里输入"qcxe",效果是一样的。程序将会回到"waitForInput()",并且返回输入的内容。

回复之后,我们将在golddata页面里,点击"查询"刷新页面,mydict的登录状态会变为"已登录"。如下图所示:

接下来,我们可以定义抓取规则。

定义抓取规则

在添加规则之前,我们还需要定义类似于表结构的数据集。如下图所示:

接下来,点击"采集管理》规则管理",添加规则,打开添加规则页面,如下图所示:

抓取规则脚本如下:

[  {    __sample: http://localhost:8080/word/index?pageNum=2    match0: http\:\/\/localhost\:8080\/word\/index(\?pageNum=\d+)?    fields0:    {      __model: true      __dataset: word      __node: "#content  ul >li"      sn:      {        expr: ""        attr: ""        js: md5(item.name)        __label: ""        __showOnList: false        __type: ""        down: "0"        accessPathJs: ""        uploadConf: s1      }      name:      {        expr: h6        attr: ""        js: ""        __label: ""        __showOnList: true        __type: ""        down: "0"        accessPathJs: ""        uploadConf: s1      }      uk:      {        expr: li span.uk        attr: ""        js: source.replace("uk: ",'')        __label: ""        __showOnList: false        __type: ""        down: "0"        accessPathJs: ""        uploadConf: s1      }      us:      {        expr: li span.us        attr: ""        js: source.replace("us: ",'')        __label: ""        __showOnList: false        __type: ""        down: "0"        accessPathJs: ""        uploadConf: s1      }    }    fields1:    {      __node: .pagination a      href:      {        expr: a        attr: abs:href        js: ""        __label: ""        __showOnList: false        __type: ""        down: "0"        accessPathJs: ""        uploadConf: s1      }    }  }]

然后点击测试,将会进行测试抓取。我们发现数据的确被抓取到了,如下图所示:

配制抓取器抓取

这和之前是一样的,将抓取器设置抓取站点"mydict".然后点击开始抓取。然后会在数据管理里面查看抓取的数据。

结论

GoldData半自动登录实质是提供了一个可以人工介入来异步获取会话的框架,既可以调用AI接口做到完全自动登录;也可以将类似于验证码需要复杂识别需要提供输入时,直接将cookie或者token信息通过邮件收发到GoldData平台(这样可以不管CAPTCHA多复杂 ),都可以让GoldData抓取数据的动作持续进行下去。

登录 输入 页面 数据 邮件 规则 脚本 管理 内容 网站 验证 程序 接下来 例子 单词 状态 站点 检查 复杂 人工 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技巨头监管 智能科技公司是互联网公司吗 互联网科技与金融科技 奇酷互联网科技 银优互联网科技有限公司 西安互联网科技公司 人人互联网科技是培训 蓝色互联网科技 互联网科技寓意 受益于互联网科技的高速发展 健康食品互联网创新科技园项目 洛阳共同富裕互联网科技有限公司 电子商务与互联网科技的关系 互联网科技融合创新 广州互联网高科技取餐柜 南京一网一红互联网科技有限公司 深圳互联网科技园地址 现代互联网科技公司 高科技和互联网的现代国家 前海云享互联网科技 广东万易互联网科技有限公司惠州分公司 湖南永感互联网科技有限公司 奇酷互联网科技 银优互联网科技有限公司 深圳市优智互联网科技有限公司 广西互联网科技孵化中心 中国互联网十大科技股排名 互联网第三次科技革命特征 互联网金融科技公司的优势 互联网安防科技感
0