转载:GitHub - musiclover789/luna: Luna-抗指纹浏览器|防反爬虫框架|浏览器指纹|自动化浏览器|防识别|反识别|防关联
Luna 是一款强大的第三方库,专为抗指纹自动化爬虫而设计。通过利用视觉特征和先进的算法,Luna 提供了一种有效的方法来对抗现代爬虫检测技术,保护您的网络资源免受恶意爬取和滥用。
功能亮点
-
强大的抗指纹技术: Luna 提供了先进的抗指纹技术,使您的爬虫程序难以被识别。
-
视觉特征解析: 基于视觉特征的页面解析和操作,使爬虫更智能。
-
简单易用的接口: Luna 提供简单易用的接口,轻松集成和使用它的功能。
-
智能化行为模拟: 模拟用户行为,有效应对现代爬虫检测技术。
-
绕过检测技术: 具备绕过常见爬虫检测技术的能力,确保您的爬虫不容易被拦截。
效果展示-加载可能有些慢
为什么选择 Luna?
使用 Luna,您可以快速构建出智能、高效、难以被识别的爬虫程序。不论是在开发自动化测试脚本、数据采集应用还是其他需要模拟用户行为的场景中,Luna 都能为您提供可靠的解决方案。
不论您是开发人员、数据科学家还是网络安全专家,Luna 都是您在抗指纹爬虫领域的得力助手。让 Luna 成为您的选择,保护您的网络资源,确保您的数据安全。
目前支持的操作系统是 Windows,且仅限于 x86-64 架构。已经在 Windows x86-64 硬件环境下进行了测试。其他操作系统或平台的测试尚不充分,因此不建议在这些系统上使用。
开始使用 Luna
详细的使用说明和示例代码,请查看本项目的文档。
示例代码部分也可以查看源码的test_case包下内容。
安装
首先,您可以使用 go get
命令安装 Luna 及其依赖项:
go get -v -d github.com/musiclover789/luna go get -v -d ./...
Luna浏览器部分
浏览器部分是 Luna 的核心功能之一,它使您能够执行抗指纹爬虫任务。请注意,您需要下载适用于 Luna 的专用浏览器才能实现指纹防识别。该浏览器的大小约为 7GB,因此需要一些时间来下载。如果您没有抗指纹需求、可以直接用您的chrome或其他浏览器即可。
目前,我们已经将浏览器文件上传到 百度 网盘,并提供了下载链接:
《暂停提供》
快速入门
package main import ( "fmt" "github.com/musiclover789/luna/devtools" "time" ) func main() { // 初始化浏览器对象 //你浏览器的地址 //chromiumPath := "/Users/你自己的浏览器的地址/Chromium.app/Contents/MacOS/Chromium" chromiumPath := "C:\\src\\chromedev\\chromium\\src\\out\\Default/chrome.exe" browserObj := devtools.NewBrowser(chromiumPath, &devtools.BrowserOptions{ // 设置非隐身模式 Headless: false, }) // 打开一个页面 browserObj.OpenPage("https://www.baidu.com") fmt.Println("恭喜你,非常nice的第一个案例") time.Sleep(1 * time.Hour) }
如果您执行到这一步遇到依赖包问题,那么请执行 go get -v -d ./... 命令即可。
特点
1. 抗指纹特性
Luna 强大的抗指纹技术可以模拟和对抗多种常见爬虫检测技术,包括但不限于:
- 时区指纹
- 显卡指纹
- User-Agent 指纹
- Platform 指纹
- Languages 指纹
- Device Memory 指纹
- Hardware Concurrency 指纹
- Canvas 指纹
- 鼠标滚动指纹(真实很难被识别)
- 鼠标移动轨迹(真实很难被识别)
- 键盘真实输入(包括内置转输入法等)
理论上,Luna 可以成功对抗这些指纹技术,使您的爬虫在操作时不容易被识别。更多详细信息请查看我们的文档。
2. 基于视觉的操作
Luna 基于视觉的页面操作方法让您可以使用截图的方式来控制浏览器,也支持传统的 CSS 和 XPath 选择器等方式。这意味着您可以立即看到页面上的内容并执行操作,而不必等待特定事件触发。
这一特性的最大优势在于速度,因为您可以像人一样看到什么就可以操作什么。这样的交互方式使得 Luna 极为高效。
3. 代理 IP 多样性
Luna 支持市面上所有类型的代理 IP,包括 HTTP、HTTPS 和 SOCKS5,无论代理 IP 是否需要密码,Luna 都完全兼容。理论上,使用 Luna 进行爬取的请求将无法被追踪。
4. 多进程和多线程
Luna 考虑到了多进程和多线程的应用场景,使得您可以并发执行多个任务,提高了爬虫的效率。
5. 网络数据包过滤
Luna 考虑到了、可能会协议和浏览器混编的方式、和可能的协议采集需求,所以继承了比较完备的cookie方案,和数据包过滤方案、方便采集数据使用、已经封装了比较完善的 一对一 请求过滤。