大数跨境

这个 Python 脚本让我在互联网上隐形

这个 Python 脚本让我在互联网上隐形 索引目录
2025-04-22
2
导读:在本指南中,您将了解如何使用分层 Python 工具包实现在线隐身。

在本指南中,您将了解如何使用分层 Python 工具包实现在线隐身。该工具包通过 Tor 路由流量,循环用户代理和代理服务器,清理 Cookie 和存储,并利用 Selenium 和 Playwright 的隐形插件。本指南还将提供真实数据——网站平均每页包含 10-15 个跟踪器,用户每周遇到约 177 个跟踪器,卡巴斯基在 2024 年记录了超过 380 亿次跟踪器点击——以此强调 DIY 隐私的重要性。您将找到可复制粘贴的代码片段、最佳实践技巧以及用于突出显示陷阱的“信息:”标注。

为什么DIY隐私工具很重要

即使在“隐身”模式下,您加载的每个页面都可能留下您的指纹。第三方 Cookie、本地存储、画布指纹识别和分析脚本都会协同作用,在网络上追踪您。用 Python 构建自己的工具不仅可以教会您底层机制,还能让您完全掌控——无需黑盒 VPN 或付费服务。

信息:平均每个新闻网站加载超过 40 个跟踪器,启用跟踪器后需要 9.5 秒才能完全呈现,而未启用跟踪器则需要 2.7 秒。

使用 stem 通过 Tor 自动路由

Tor 通过使用志愿者中继转发流量来隐藏您的 IP 地址。使用stem库,您可以通过 Python 启动和控制 Tor。

  1. 安装 Tor 和 stem

sudo apt install tor
pip install stem requests pysocks
  1. 使用自定义配置启动 Tor

from stem.process import launch_tor_with_config

tor_process = launch_tor_with_config(
config = {
'SocksPort': '9050',
'ControlPort': '9051',
'CookieAuthentication': '1'
}
)

这会在端口 9050/9051 上启动 Tor 实例。

  1. 发出新身份信号

from stem import Signal
from stem.control import Controller

with Controller.from_port(port=9051) as controller:
controller.authenticate()
controller.signal(Signal.NEWNYM)

请记住:NEWNYM将电路标记为脏;如果重复使用出口,您可能会获得相同的 IP。

  1. 通过 Tor 发出请求

import requests

session = requests.Session()
session.proxies.update({
'http': 'socks5h://127.0.0.1:9050',
'https': 'socks5h://127.0.0.1:9050'
})
print(session.get('https://httpbin.org/ip').text)
信息:为了实现可靠的 IP 更改,请将信号间隔NEWNYM至少 10 秒,以避免速率限制和网络压力。

轮换用户代理和代理服务器

固定 IP 和用户代理很容易被屏蔽。每次请求时都切换它们。

import random
import requests
from fake_useragent import UserAgent

user_agents = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
"Safari/537.36 (KHTML, like Gecko)",
# add more
]
proxies = [
"http://user:pass@1.2.3.4:8000",
# add premium or residential proxies
]

def fetch(url):
headers = {'User-Agent': UserAgent().random}
proxy = {'http': random.choice(proxies), 'https': random.choice(proxies)}
return requests.get(url, headers=headers, proxies=proxy, timeout=10)

print(fetch("https://api.ipify.org").text)
  • 跳过免费代理——它们不可靠。

  • 通过重试处理失败并删除无效代理。

  • 与 Tor 结合实现双层匿名。

信息:高级旋转代理服务通常会公开单个端点(例如pr.xxx.com:port),从而简化旋转和健康检查。

清除 Cookies、自动填充和指纹识别技巧

Cookies 和存储链接您的会话;浏览器指纹暴露您的环境。

  1. Cookie 与存储

driver.delete_all_cookies()
driver.execute_script("window.localStorage.clear(); window.sessionStorage.clear();")

这将擦除令牌和站点数据。

  1. 新鲜的配置文件

    使用临时用户数据目录启动 Chrome 或 Firefox,以避免保存密码或自动填充。

  2. 指纹识别

  • 使用selenium-stealth来欺骗navigator属性和 WebGL。

  • 将噪声注入画布调用:

HTMLCanvasElement.prototype.getContext = (orig => function(...args){ const ctx = orig.apply(this, args); const origGetImage = ctx.getImageData; ctx.getImageData = function(x,y,w,h){ const data = origGetImage.apply(this,[x,y,w,h]); for(let i=0;i<data.data.length;i+=4) data.data[i] ^= 1; return data; }; return ctx; })(HTMLCanvasElement.prototype.getContext);

信息:navigator.plugins即使大小上的细微差别也screen可能标记无头会话。

与 Selenium 或 Playwright 集成以实现隐身浏览

硒隐形

pip install selenium selenium-stealth
from selenium import webdriver
from selenium_stealth import stealth

driver = webdriver.Chrome()
stealth(driver,
languages=["en-US","en"],
vendor="Google Inc.",
platform="Win32",
webgl_vendor="Intel Inc.",
fix_hairline=True)
driver.get("https://example.com")

这会删除navigator.webdriver并欺骗密钥标志。

剧作家隐身

pip install playwright playwright-stealth
from playwright.sync_api import sync_playwright
from playwright_stealth import stealth_sync

with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
stealth_sync(page)
page.goto("https://example.com")

它修补无头标志并随机化 UA 字符串。

信息: Playwright Stealth 上个月的下载量超过 200,000 次,显示出社区的广泛采用。

常见挑战及其克服方法

  • 代理禁令:始终捕获超时并在出现错误时切换代理。

  • 速率限制NEWNYM空间信号≥10秒。

  • 性能影响:每一层都会增加延迟;测试您的吞吐量。

  • 逃避军备竞赛:隐形库需要更新;监控存储库以获取补丁。

信息:当拦截器处于活动状态时,带有 41 个跟踪器的新闻网站的加载速度会提高 3 倍——平衡速度与隐身性。

结论

隐私并非魔法,而是层层精心设计的步骤。通过结合 Tor 路由、代理和 UA 轮换、存储清理以及浏览器隐身插件,您的 Python 脚本可以与真实用户融为一体。从小处着手:一次添加一层,验证其有效性,然后再叠加下一层。



【声明】内容源于网络
0
0
索引目录
索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
内容 444
粉丝 0
索引目录 索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
总阅读544
粉丝0
内容444