自动采集编写(GoldData配制登录和检查会话的数据集有什么区别?)

优采云 发布时间: 2022-04-15 09:45

  自动采集编写(GoldData配制登录和检查会话的数据集有什么区别?)

  概括

  本文将介绍GoldData的*敏*感*词*登录功能对采集必填网站数据的使用。GoldData的*敏*感*词*登录功能是指通过脚本进行登录。如果需要手动输入验证码或其他内容,可以通过收发邮件的方式进行登录。

  下载示例

  为了解释方便,我们使用采集mydict的数据一词来解释需要登录的采集网站数据。mydict示例程序可以从开源下载< @网站 到 ( , 或 )。

  下载后打开命令行,运行以下命令启动示例程序。

  java -jar mydict.war

  启动后,打开浏览器输入 URL:8080/ 即可打开登录页面。如下所示:

  

  输入用户名和密码(均为admin),即可打开首页单词列表。

  编写登录和检查会话脚本

  点击“采集Management”网站Management”,点击“Add”按钮,添加一个名为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="+code

var 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: h5

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 能够继续捕获数据。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线