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

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

2022年04月02日 5644点热度 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友缘是什么账号,能用来干什么? 【指纹浏览器系列】十、闲话聊一聊指纹浏览器的用途 【指纹浏览器系列】九、 编写自己的指纹浏览器以及指纹信息的来源
【指纹浏览器系列】二、浏览器指纹的检测与对抗的办法 .py源码转换成.pyd通过cpython(win7_64_python35环境) WP Random Post Thumbnails一个在文章中插入随机图片的插件 Adsense美国账号如何免税和EIN,具体税务信息的填写 【指纹浏览器系列】十、闲话聊一聊指纹浏览器的用途 Adespresso批量管理Facebook广告投放
标签聚合
浏览器指纹 TrafficArmor markdown插件 Adsense 指纹浏览器 facebook广告投放 Youtube Adsense pyppeteer

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

THEME KRATOS MADE BY VTROIS

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