指纹浏览器系列教程目录
一、指纹浏览器的原理与应用
二、浏览器指纹的检测与对抗的办法
三、更多的检测手段与指纹浏览器选购方案
四、命令行形式浏览器多开解决方案
五、浏览器插件形式改变指纹
六、node.js库Puppeteer改变浏览器指纹信息
七、python改变浏览器指纹信息
八、java、go、c#、php、rust更改浏览器指纹信息
九、编写自己的指纹浏览器以及指纹信息来源
十、闲话聊一聊指纹浏览器的用途
java、go、c#、php、rust更改浏览器指纹信息
本篇文章之所以把他们几个弄一起,是因为他们的CDP操纵的库都使用的人相对不算多,并且改变浏览器指纹的方法跟前面的pyppeteer大同小异,都是加载puppeteer的stealth插件里的js代码。
Java
selenium这个项目就是用Java写的,所以Java调用selenium最方便,具体如何加载stealth的js代码参考前面python里调用selenium方法。
Go
go有两个比较知名的CDP库。
1. chromdp
地址:https://github.com/chromedp/chromedp
它加载stealth的js代码的方式在issue里:https://github.com/chromedp/chromedp/issues/396
里面也包含了第三方作者写的插件。
2. rod
地址:https://github.com/go-rod/rod
作者自己也跟python一样翻译了stealth的js插件,改成了go的。
地址为:https://github.com/go-rod/stealth,它跟原版stealth一样无法自定义具体指纹参数。
C#
puppeteer-sharp
地址:https://github.com/hardkoded/puppeteer-sharp
而它也有人写c#版本的stealth插件,地址:https://github.com/Overmiind/Puppeteer-sharp-extra
此款插件是所有非node.js原版完成度最高的,但是也有无法自定义指纹参数的问题。
Php
puphpeteer
地址:https://github.com/rialto-php/puphpeteer
曾经尝试过,我想说的是但凡你会任何其他语言都不要用PHP写这方面东西。
Rust
rust-headless-chrome
地址:https://github.com/atroche/rust-headless-chrome
chromiumoxide
https://github.com/mattsse/chromiumoxide
rust真的没接触过,只是分享下两个start比较多的库,最近留意到cloudflare居然也有开发一款基于rust语言的CDP库,还是蛮期待rust的后续发展的。
总结
其实这些调用的库大部分也都支持Firefox,那为什么我提到的都是以chromium为基础的举例呢?
答案是因为,chromium内核的浏览器通过命令行可以设置非常多的参数,而这些CDP库调用Firefox有时候就是差那么一两个功能没法使用,导致你非常难受。
本文只是写了一些相对主流的编程语言,并且里面的库也是有持续更新并且star相对多的库。其他的编程语言或库有的实在是没接触过,这里就不班门弄斧了。
我个人更倾向于解释型语言来写浏览器自动化程序,因为网站的页面是会随时变化,而解释型语言的开发效率要比编译型语言快很多,当网站内容发生变化,可以做到快速跟进,这样也会更方便些。
文章评论