三分醉博客
  • 首页
  • Affiliate Marketing
    • Adsense系列教程
    • Facebook广告投放
    • Youtube基础入门
  • 程序语言
  • 工具与技巧
  • 三分醉随笔
  • 联系方式
  1. 首页
  2. 指纹浏览器系列教程
  3. 正文

【指纹浏览器系列】七、python改变浏览器指纹

2022年04月02日 5643点热度 3人点赞 0条评论

浏览器插件形式改变指纹

指纹浏览器系列教程目录:
一、指纹浏览器的原理与应用
二、浏览器指纹的检测与对抗的办法
三、更多的检测手段与指纹浏览器选购方案
四、命令行形式浏览器多开解决方案
五、浏览器插件形式改变指纹
六、node.js库Puppeteer改变浏览器指纹信息
七、python改变浏览器指纹信息
八、java、go、c#、php、rust更改浏览器指纹信息
九、编写自己的指纹浏览器以及指纹信息来源
十、闲话聊一聊指纹浏览器的用途

python改变浏览器指纹

python加载chromium类内核的浏览器有两种形式,一种是通过CDP(Chrome DevTools Protocol)直接操作浏览器,一种是通过selenium来加载。

pyppeteer

当时因为puppeteer谷歌官方是node.js写的,那么为什么就不能用python模仿它写一个呢。
于是pyppeteer诞生了,它刚开始出现的确惊艳了很多人,但谷歌随即玩起了老戏法,频繁的更新代码,一年更新了3个大版本(30多个小版本)从1.0瞬间到了4.0,写本文的时候我看了下居然已经到了13.0这个大版本了,我直呼好家伙。。。
而pyppeteer这种个人项目根本跟不上,还停留在1.x版本,加上作者没时间,并且很久不露面,导致push的代码都没法合并。直到后来有人再开了一个fork的库,组织人继续写,这个库才勉强活了下来。
新地址:https://github.com/pyppeteer/pyppeteer 。这次是有在继续更新,但当年使用它的时候,bug简直不要太多,现在它发展的还是可以的。
pyppeteer如何使用我就不详细写了,只讲解如何伪装浏览器的指纹信息。
这里有个非常牛逼的库那就是https://github.com/MeiK2333/pyppeteer_stealth
它是从puppeteer的插件库puppeteer-extra-plugin-stealth改写成python版本的,但是它更厉害的一点是,原版的指纹信息是固定的,而python这个版本的是支持你自己定义具体指纹信息的。
那么配合系列教程里的《编写自己的指纹浏览器以及指纹信息来源》,传入弄到的指纹信息,可以轻松的解决浏览器指纹问题。
下面说下具体使用:
安装pip install pyppeteer_stealth
运行代码:

import asyncio
from pyppeteer import launch
from pyppeteer_stealth import stealth

async def main():
    browser = await launch(headless=True)
    page = await browser.newPage()

    await stealth(
  page: page,
  run_on_insecure_origins: bool = False,
  languages: [str] = ["en-US", "en"],
  vendor: str = "Google Inc."
  user_agent: str = None,
  locale: str = "en-US,en",
  mask_linux: bool = True,
  webgl_vendor: str = "Intel Inc.",
  renderer: str = "Intel Iris OpenGL Engine",
  disabled_evasions: list = [],
)
    await page.goto("https://bot.sannysoft.com/")
    await browser.close()
asyncio.get_event_loop().run_until_complete(main())

如此再次打开检测网站,就会发现通过python打开的浏览器的指纹就是你自己设定的参数里面的值,非常好用。

ichrome

地址:https://github.com/ClericPy/ichrome
这个库是当pyppeteer没人更新的时候发现的,也是直接操作CDP的方式。
这个作者真的很执着,从我了解开始,每月都在更新,真的很难得,而且它设置的易用性也很不错,如果你不想用上面两款,那么它也是值得你去尝试的。

selenium改变浏览器指纹

自从谷歌官方给浏览器增加了headless模式,一下子就把phantomjs(一款无界面浏览器,占用资源小)的命给格了。后又弄了官方的puppeteer又要把selenium的命给格了。
为什么会这样呢?
是因为puppeteer的资源占用比selenium小,并且不需要下载driver就可以直接控制浏览器,并且可以预加载js代码。
selenium曾经有个致命的问题,无法通过预加载反指纹js代码来实现隐藏自己的浏览器指纹信息。
它必须是你先打开浏览器,打开你要访问的网页,之后才能插入js,最后刷新一下,这样js才生效。
但是selenium4已经解决了这个问题,现在也可以直接使用CDP的命令了,大大提升了可用度,并且我认为selenium的易用性以及稳定性都是非常不错的,并不是很多人说的一无是处。

后面这两个库如何隐藏浏览器指纹我就不写具体代码了,因为都比较麻烦,上面的pyppeteer已经足够好用了。如果实在是想要使用后面的这两个库来调用浏览器,那么可以把https://github.com/MeiK2333/pyppeteer_stealth/tree/master/pyppeteer_stealth/js 文件夹里的所有js文件合并到一起,然后通过这两个库预加载合并后的js即可。

本文由三分醉博客原创,转载请注明:https://www.sanfenzui.com/python-changes-browser-fingerprint.html

文章同步更新在知乎:三分醉 - 知乎

本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: pyppeteer 指纹浏览器 浏览器指纹
最后更新:2022年04月02日

三分醉

https://www.sanfenzui.com/about-me

点赞
< 上一篇
下一篇 >
2TB终身网盘
建了个群,想一起交流的可以加入下
最新 热点 随机
最新 热点 随机
解决中文Windows11编译chromium过程中报错gbk问题 什么人必须买抗投诉服务器DMCA Ignored Hosting APP里面增加cloak的跑法可行性研究 Facebook Dating友缘是什么账号,能用来干什么? 【指纹浏览器系列】十、闲话聊一聊指纹浏览器的用途 【指纹浏览器系列】九、 编写自己的指纹浏览器以及指纹信息的来源
Luminati LPM在Linux下安装教程 WP Random Post Thumbnails一个在文章中插入随机图片的插件 【指纹浏览器系列】五、浏览器插件形式改变指纹 Youtube开启获利的条件及一些专有名词MCN、YPP的解释 如何免费获得一个长效香港手机号 Pyppeteer如何加载chrome插件并测试
标签聚合
markdown插件 Youtube Adsense TrafficArmor 指纹浏览器 浏览器指纹 facebook广告投放 Adsense pyppeteer

COPYRIGHT © 2020 三分醉博客. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

关于我: about-me 友情链接: 三分醉的小伙伴们