如何修改Chromium内核|浏览器指纹伪装|Puppeteer指纹|Playwright指纹- Chromium内核修改与浏览器指纹伪装方法-anti-fingerprint指纹浏览器如何搭建环境

        Chromium内核是许多现代浏览器的基础,如Chrome和Edge。在进行网络爬取、自动化测试或数据挖掘等任务时,使用Puppeteer或Playwright等工具时,浏览器指纹的重要性不言而喻。本文将介绍如何修改Chromium内核以及浏览器指纹伪装的方法,以构建一个抗指纹的浏览环境。

首先,了解如何修改Chromium内核是至关重要的。您可以从Chromium源代码仓库中获取最新的代码,并根据需要进行定制修改。这样可以让您控制浏览器的行为,包括用户代理、Cookie管理和JavaScript执行方式等。

其次,浏览器指纹伪装是保护个人隐私和防止被检测出自动化行为的关键。通过修改浏览器的User-Agent、Canvas指纹、WebRTC配置等信息,可以减少被网站识别的可能性。例如,使用Puppeteer或Playwright可以通过设置特定的选项来修改User-Agent,并且可以通过使用第三方库来生成随机的Canvas指纹。

最后,搭建一个抗指纹的浏览环境需要综合考虑多个因素。除了修改Chromium内核和伪装浏览器指纹外,还应注意其他可能泄露个人信息的因素,如浏览器插件和操作系统配置等。定期更新浏览器和操作系统也是保持安全的重要步骤。

总之,通过了解如何修改Chromium内核和实施浏览器指纹伪装方法,您可以构建一个更加隐私安全和抗指纹的浏览环境,从而更好地保护个人信息和确保自动化任务的顺利执行。

原项目地址:

python:https://github.com/musiclover789/luna_python

golang:https://github.com/musiclover789/luna

import time

import devtools.browser as luna
import devtools.page as page
import common.server_management as init

"""
测试目的:希望你可以正常使用指纹
"""


def main():
    """
    start函数是启动 服务、你可以选择传入参数;就是端口号、你也可以不传入、如果你不传入 程序会自动选择一个未被占用的端口。
    如果你不清楚他有什么用、可以不予理睬
    """
    if not init.start(9876):
        print("启动服务-失败")

    """
        chromium_path 是必须要传入的参数、就是你抗指纹浏览器所在的路径 如 c:\\luna\\Default\\chrome.exe
    """
    chromium_path = "/Users/hongyuji/Documents/workspace/golang/Chromium.app/Contents/MacOS/Chromium"

    args = [
        "--luna_cavans_random_str=B3B4",
        "--luna_user_agent=Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36",
        "--luna_platform=win64",
        "--luna_languages=en-GB",
        "--luna_deviceMemory=8",
        "--luna_UNMASKED_VENDOR_WEBGL=Intel Corporation",
        "--luna_UNMASKED_RENDERER_WEBGL=Intel(R) UHD Graphics 620",
        "--luna_GL_VERSION=WebGL 1.0 (OpenGL ES 3.0 Intel(R) UHD Graphics 620)",
        # 仅是示例、更多指纹设置参考luna golang版本文档-都是一样的
    ]  # 示例指纹列表,

    chrome_id = luna.new_browser(chromium_path, fingerprint=args)

    time.sleep(1)

    page_id = page.open_page(chrome_id, "http://www.baidu.com")

    print("便于您查看指纹、暂停1分钟")
    time.sleep(60)

    page.close_page(page_id)
    # 关闭浏览器
    print("关闭浏览器", luna.close_browser(chrome_id))


if __name__ == "__main__":
    main()

另外他支持多种适合的应用场景,有python和golang两个版本

package test_case

import (
	"fmt"
	"github.com/musiclover789/luna/base_devtools/network"
	"github.com/musiclover789/luna/base_devtools/page"
	"github.com/musiclover789/luna/devtools"
	"github.com/musiclover789/luna/luna_utils"
	"github.com/musiclover789/luna/protocol"
	"sync"
	"testing"
	"time"
)

/***
官方文档
https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-navigate
*/

func TestDouyin(t *testing.T) {
	//启动前先杀死其他的chromium进程;为了防止程序以及停止但是依然在内存中贮存;
	//他会根据你的系统不同,使用命令行的命令进行杀死进程

	luna_utils.KillProcess()
	/********************************/
	chromiumPath := "/Users/hongyuji/Documents/workspace/golang/Chromium.app/Contents/MacOS/Chromium"
	_, browserObj := devtools.NewBrowser(chromiumPath, &devtools.BrowserOptions{
		CachePath: luna_utils.CreateCacheDirInSubDir("/Users/hongyuji/Documents/workspace/golang/cache"),
		Headless:  false,
	})

	//第一组获取方式
	var wg sync.WaitGroup // 同步等待
	wg.Add(1)             // 增加等待的数量
	err, p1 := browserObj.OpenPageAndListen("https://live.douyin.com/865250281495", func(devToolsConn *protocol.DevToolsConn) {
		//第一个处理
		devToolsConn.ShowLogJson(false)
		page.PageEnable(devToolsConn)
		network.EnableNetwork(devToolsConn)
		network.RequestResponseAsync(devToolsConn, func(requestId string, request, response map[string]interface{}) {
			fmt.Println(luna_utils.FormatJSONAsString(request), luna_utils.FormatJSONAsString(request))
			//network.GetResponseBody(devToolsConn,requestId,time.Minute)
		})
	})
	wg.Wait() // 等待回调函数执行完成

	fmt.Println(err, p1)
	time.Sleep(1 * time.Hour)
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值