如何利用luna-批量自动注册账号|web driver|防识别|爬虫框架

如何利用luna-批量自动注册账号|web driver|防识别|爬虫框架

Luna 是一款强大的第三方库,专为抗指纹自动化爬虫而设计。

原项目地址:GitHub - musiclover789/luna: Luna-抗指纹浏览器|爬虫|防反爬虫框架|浏览器指纹|自动化浏览器|防识别|反识别|爬虫框架

功能亮点

强大的抗指纹技术: Luna 提供了先进的抗指纹技术,使您的爬虫程序难以被识别。

视觉特征解析: 基于视觉特征的页面解析和操作,使爬虫更智能。

简单易用的接口: Luna 提供简单易用的接口,轻松集成和使用它的功能。

智能化行为模拟: 模拟用户行为,有效应对现代爬虫检测技术。

绕过检测技术: 具备绕过常见爬虫检测技术的能力,确保您的爬虫不容易被拦截。

package test_case

import (

"fmt"

"luna/base_devtools/input"

"luna/base_devtools/page"

"luna/base_devtools/runtime"

"luna/devtools"

"luna/luna_utils"

"luna/protocol"

"luna/script"

"testing"

"time"

)

func TestBaidu(t *testing.T) {

luna_utils.KillProcess()

/********************************/

chromiumPath := ""

browserObj := devtools.NewBrowser(chromiumPath, &devtools.BrowserOptions{

CachePath: luna_utils.CreateCacheDirInSubDir("/Users/Documents/golang/cache"),

ImgPath: "/Users/Documents/luna/test_img/baidu_img",

Headless: false,

//ProxyStr: "https://APM5TV:9BFF4D11@10.179.160.60:39349",

//Fingerprint: []string{"fingerprint1", "fingerprint2"},

WindowSize: &devtools.WindowSize{

Width: 1496,

Height: 967,

},

})

//&{2 1496 967 1496 858}

fmt.Println()

browserObj.DevToolsConn.ShowLog(false)

err, itemPage := browserObj.OpenPageAndListen("url", func(devToolsConn *protocol.DevToolsConn) {

//第一个处理

devToolsConn.ShowLog(true)

page.PageEnable(devToolsConn)

devToolsConn.SubscribeOneTimeEvent("Page.loadEventFired", func(param interface{}) {

runtime.Evaluate(devToolsConn, script.ShowMousePosition())

})

devToolsConn.SubscribeOneTimeEvent("Page.windowOpen", func(param interface{}) {

runtime.Evaluate(devToolsConn, script.ShowMousePosition())

})

})

if err == nil {

itemPage.RunJS(script.ShowMousePosition())

itemPage.DevToolsConn.ReduceSpeed(10)

err, ok := itemPage.WaitForMatchOnPageSync("home.png", 0.5, time.Second*20)

if err == nil && ok {

fmt.Println("说明、页面已经成功打开")

//time.Sleep(time.Hour)

err, imageCoordinates := itemPage.SimilarityWithMargin("home.png", 50, 200, 10, 10, time.Minute)

if err == nil && imageCoordinates.MatchScore > 0.5 {

targetX, targetY := imageCoordinates.RandomX, imageCoordinates.RandomY

itemPage.SimulateMouseMoveOnPage(luna_utils.RandomInRange(-1, devtools.BrowserGlobal.ScreenAvailWidth), -1, targetX, targetY)

itemPage.SimulateMouseClickOnPage(targetX, targetY)

itemPage.SimulateKeyboardInputOnPage("随便")

//点击按钮

err, imageCoordinates := itemPage.ImageSimilarity("button_01.png", time.Minute)

if err == nil && imageCoordinates.MatchScore > 0.5 {

itemPage.SimulateMouseMoveOnPage(targetX, targetY, imageCoordinates.RandomX, imageCoordinates.RandomY)

itemPage.SimulateMouseClickOnPage(imageCoordinates.RandomX, imageCoordinates.RandomY)

}

//滚动到页面底部

fmt.Println("~~~~~~~~~~>==============<~~~~~~~~~~~~~~")

err, ok := itemPage.ScrollToTargetImagePosition(imageCoordinates.RandomX, imageCoordinates.RandomY, input.DOWN, "bottom.png", 0.5, time.Minute)

fmt.Println(ok, err)

itemPage.Close()

browserObj.Close()

}

}

fmt.Println("~~~~~~~~~~>==============<~~~~~~~~~~~~~~")

} else {

fmt.Println(err, "错误了")

}

/********************************/

time.Sleep(1 * time.Minute)

}

相关推荐

2010南非世界杯32强 日本国家队
365买球平台下载苹果

2010南非世界杯32强 日本国家队

📅 07-03 👁️ 6142
毕业于实验小学、临平三中的浙江妹子叶炫清,如今爆红中国新歌声的舞台
摔跤吧!爸爸
beat365手机下载

摔跤吧!爸爸

📅 06-30 👁️ 8090
哪个查大数据好些(用什么查大数据最准)
365买球平台下载苹果

哪个查大数据好些(用什么查大数据最准)

📅 07-14 👁️ 6292
为什么说不可以以貌取人?
365买球平台下载苹果

为什么说不可以以貌取人?

📅 06-30 👁️ 4440
西元棋牌官方版/游戏正版/老版/游戏/最新版
365买球平台下载苹果

西元棋牌官方版/游戏正版/老版/游戏/最新版

📅 07-18 👁️ 5208