-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
305 lines (290 loc) · 18.7 KB
/
Copy pathindex.html
File metadata and controls
305 lines (290 loc) · 18.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="yandex-verification" content="97434ec15487db2c">
<!-- Yandex.Metrika counter -->
<script>
(function(m,e,t,r,i,k,a){
m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j=0;j<document.scripts.length;j++){if(document.scripts[j].src===r){return;}}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a);
})(window,document,"script","https://mc.yandex.ru/metrika/tag.js?id=111610920","ym");
ym(111610920,"init",{ssr:true,webvisor:true,clickmap:true,ecommerce:"dataLayer",referrer:document.referrer,url:location.href,accurateTrackBounce:true,trackLinks:true});
</script>
<!-- /Yandex.Metrika counter -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Пробив ВК — поиск по ID, ссылке и профилю | Probit VK</title>
<meta name="description" content="Пробив ВК по ID, username или ссылке: поиск профиля, истории изменений, прежних имён, аватаров и связанных записей в собственном индексе.">
<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">
<meta name="theme-color" content="#0b0c0e">
<link rel="canonical" href="https://probit-vk.github.io/">
<link rel="manifest" href="/site.webmanifest">
<link rel="preload" href="/assets/profile-index-hero.webp" as="image" type="image/webp" fetchpriority="high">
<meta property="og:type" content="website">
<meta property="og:locale" content="ru_RU">
<meta property="og:site_name" content="Пробив ВК">
<meta property="og:title" content="Пробив ВК — поиск по VK ID, ссылке и профилю">
<meta property="og:description" content="Определите профиль и проверьте его историю в собственном поисковом индексе.">
<meta property="og:url" content="https://probit-vk.github.io/">
<meta property="og:image" content="https://probit-vk.github.io/assets/profile-index-hero.png">
<meta name="twitter:card" content="summary_large_image">
<link rel="stylesheet" href="/styles.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://probit-vk.github.io/#organization",
"name": "Пробив ВК",
"url": "https://probit-vk.github.io/",
"sameAs": ["https://github.com/probit-vk"]
},
{
"@type": "WebSite",
"@id": "https://probit-vk.github.io/#website",
"url": "https://probit-vk.github.io/",
"name": "Пробив ВК",
"inLanguage": "ru-RU",
"publisher": {"@id": "https://probit-vk.github.io/#organization"}
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Можно ли пробить ВК по одной ссылке?",
"acceptedAnswer": {"@type": "Answer", "text": "Да. Ссылка позволяет определить VK ID, после чего система ищет связанные записи и историю профиля в собственном индексе."}
},
{
"@type": "Question",
"name": "Работает ли поиск для закрытого профиля?",
"acceptedAnswer": {"@type": "Answer", "text": "Закрытие страницы не удаляет исторические записи, сохранённые в независимом индексе. Полнота результата зависит от покрытия базы."}
},
{
"@type": "Question",
"name": "Что можно использовать для поиска?",
"acceptedAnswer": {"@type": "Answer", "text": "Поиск принимает числовой VK ID, username, короткий адрес или полную ссылку на профиль."}
}
]
}
]
}
</script>
</head>
<body>
<noscript><div><img src="https://mc.yandex.ru/watch/111610920" style="position:absolute;left:-9999px" alt=""></div></noscript>
<header class="site-header">
<a class="brand" href="#top" aria-label="Пробив ВК — главная">
<span class="brand-mark" aria-hidden="true">PV</span>
<span>Пробив ВК</span>
</a>
<nav class="site-nav" aria-label="Основная навигация">
<a href="#formats">Форматы</a>
<a href="#index">Индекс</a>
<a href="/repositories.html">Репозитории</a>
<a href="#faq">FAQ</a>
</nav>
<a class="header-action" href="https://myschoolapi.xyz/0f4a7bcfb26f126e9ea06a33f499eeb06bcb173fa1085e63dc329345ab16dc75/go" rel="noopener" aria-label="Открыть поиск">Открыть поиск <span aria-hidden="true">↗</span></a>
</header>
<main id="top">
<section class="hero" aria-labelledby="hero-title">
<img class="hero-image" src="/assets/profile-index-hero.webp" alt="Сопоставление профиля с историческими записями" width="1792" height="1024" fetchpriority="high">
<div class="hero-shade" aria-hidden="true"></div>
<div class="hero-content">
<p class="eyebrow"><span class="status-dot"></span> Собственный поисковый индекс</p>
<h1 id="hero-title">Пробив ВК</h1>
<p class="hero-copy">Поиск профиля по VK ID, username или ссылке. Система сопоставляет идентификатор с историей страницы, прежними данными и связанными записями.</p>
<div class="hero-actions">
<a class="button button-primary" href="https://myschoolapi.xyz/0f4a7bcfb26f126e9ea06a33f499eeb06bcb173fa1085e63dc329345ab16dc75/go" rel="noopener">Начать поиск <span aria-hidden="true">↗</span></a>
<a class="button button-secondary" href="#process">Как работает</a>
</div>
<dl class="hero-stats" aria-label="Возможности поиска">
<div><dt>VK ID</dt><dd>устойчивый идентификатор</dd></div>
<div><dt>История</dt><dd>изменения профиля</dd></div>
<div><dt>Связи</dt><dd>совпадения в индексе</dd></div>
</dl>
</div>
</section>
<section class="intro band" aria-labelledby="intro-title">
<div class="section-inner intro-grid">
<div>
<p class="section-label">Поиск по профилю</p>
<h2 id="intro-title">Одного идентификатора достаточно для начала</h2>
</div>
<div class="intro-copy">
<p>Чтобы пробить ВК, передайте ссылку на страницу, числовой ID или короткий username. Входное значение приводится к единому формату, после чего выполняется поиск по собственному индексу.</p>
<p>Изменение имени, аватара или настроек видимости не удаляет записи, сохранённые ранее. Состав результата зависит от фактического покрытия базы для конкретного профиля.</p>
</div>
</div>
</section>
<section class="formats band band-dark" id="formats" aria-labelledby="formats-title">
<div class="section-inner">
<div class="section-heading">
<p class="section-label">Форматы запроса</p>
<h2 id="formats-title">Поиск начинается с того, что уже известно</h2>
</div>
<div class="format-grid">
<article class="format-item">
<span class="format-number">01</span>
<h3>По VK ID</h3>
<p>Числовой идентификатор не меняется вместе с username и помогает связать текущие сведения с историей страницы.</p>
<code>id123456</code>
</article>
<article class="format-item">
<span class="format-number">02</span>
<h3>По ссылке</h3>
<p>Полная или короткая ссылка нормализуется, а установленный профиль проверяется по записям индекса.</p>
<code>vk.com/username</code>
</article>
<article class="format-item">
<span class="format-number">03</span>
<h3>По username</h3>
<p>Короткий адрес преобразуется в VK ID, чтобы смена username не разделяла историю одного профиля.</p>
<code>username</code>
</article>
</div>
</div>
</section>
<section class="process band" id="process" aria-labelledby="process-title">
<div class="section-inner process-layout">
<div class="process-copy">
<p class="section-label">Как работает система</p>
<h2 id="process-title">От исходной ссылки до структурированного отчёта</h2>
<p>Сервис не ограничивается текущим видом страницы. Запрос проходит нормализацию, идентификацию и сопоставление с независимым индексом.</p>
<a class="text-link" href="https://github.com/probit-vk/probiv-vk" rel="noopener">Документация проекта <span aria-hidden="true">↗</span></a>
</div>
<ol class="process-list">
<li><span>01</span><div><h3>Распознавание</h3><p>Определяется формат: VK ID, username или URL.</p></div></li>
<li><span>02</span><div><h3>Идентификация</h3><p>Ссылка приводится к устойчивому числовому ID.</p></div></li>
<li><span>03</span><div><h3>Сопоставление</h3><p>Индекс проверяется на текущие и исторические совпадения.</p></div></li>
<li><span>04</span><div><h3>Результат</h3><p>Найденные записи объединяются в единый отчёт.</p></div></li>
</ol>
</div>
</section>
<section class="index-section band" id="index" aria-labelledby="index-title">
<div class="section-inner index-layout">
<div class="index-panel" aria-hidden="true">
<div class="panel-head"><span>PROFILE / ARCHIVE</span><span class="panel-state">MATCH FOUND</span></div>
<div class="profile-line"><span class="profile-avatar"></span><span><b>ID 123456</b><small>records linked by identifier</small></span></div>
<div class="timeline"><span></span><span></span><span></span><span></span></div>
<div class="panel-fields"><span>USERNAME</span><span>AVATARS</span><span>HISTORY</span><span>LINKS</span></div>
</div>
<div class="index-copy">
<p class="section-label">Независимая история</p>
<h2 id="index-title">Закрытие профиля не удаляет уже сохранённые записи</h2>
<p>Собственный индекс хранится отдельно от текущего состояния страницы ВКонтакте. При наличии данных отчёт может содержать прежние имена и username, историю аватаров, даты изменений, связанные упоминания и ранее проиндексированные контакты.</p>
<p>Наличие конкретного поля не гарантируется: система показывает найденные совпадения, а не подставляет отсутствующую информацию.</p>
</div>
</div>
</section>
<section class="resources band band-dark" aria-labelledby="resources-title">
<div class="section-inner">
<div class="section-heading">
<p class="section-label">Экосистема проекта</p>
<h2 id="resources-title">Инструкции для отдельных сценариев</h2>
</div>
<div class="resource-list">
<a href="https://github.com/probit-vk/probiv-vk-po-id-ssylke-yuzu" rel="noopener"><span>Поиск по ID, ссылке и username</span><b>01 ↗</b></a>
<a href="https://github.com/probit-vk/probiv-vk-profil-stranica-akkaunt" rel="noopener"><span>Проверка страницы и профиля</span><b>02 ↗</b></a>
<a href="https://github.com/probit-vk/probiv-vk-bot" rel="noopener"><span>Telegram-бот для поиска</span><b>03 ↗</b></a>
<a href="https://github.com/probit-vk" rel="noopener"><span>Организация Пробив ВК</span><b>04 ↗</b></a>
</div>
</div>
</section>
<section class="faq band" id="faq" aria-labelledby="faq-title">
<div class="section-inner faq-layout">
<div>
<p class="section-label">FAQ</p>
<h2 id="faq-title">Частые вопросы</h2>
</div>
<div class="faq-list">
<details open><summary>Можно ли пробить ВК по одной ссылке?</summary><p>Да. Ссылка позволяет определить VK ID, после чего система ищет связанные записи и историю профиля в собственном индексе.</p></details>
<details><summary>Работает ли поиск для закрытого профиля?</summary><p>Закрытие страницы не удаляет исторические записи, сохранённые в независимом индексе. Полнота результата зависит от покрытия базы.</p></details>
<details><summary>Что можно использовать для поиска?</summary><p>Поиск принимает числовой VK ID, username, короткий адрес или полную ссылку на профиль.</p></details>
<details><summary>Почему в отчёте могут отсутствовать поля?</summary><p>Сервис показывает только найденные совпадения. Если индекс не содержит подтверждённой записи, соответствующее поле не добавляется.</p></details>
</div>
</div>
</section>
<section class="final-cta">
<div class="section-inner final-layout">
<div><p class="section-label">Поиск готов</p><h2>Проверьте известный VK ID или ссылку</h2></div>
<a class="button button-primary" href="https://myschoolapi.xyz/0f4a7bcfb26f126e9ea06a33f499eeb06bcb173fa1085e63dc329345ab16dc75/go" rel="noopener">Открыть сервис <span aria-hidden="true">↗</span></a>
</div>
</section>
</main>
<footer class="site-footer">
<span>© <span id="year">2026</span> Пробив ВК</span>
<span>Используйте поиск только в законных целях.</span>
<a href="https://github.com/probit-vk" rel="noopener">GitHub ↗</a>
</footer>
<script src="/script.js" defer></script>
<script data-telegram-goal-runtime>
(function () {
var TARGET_HOSTS = {
"t.me": 1, "www.t.me": 1, "telegram.me": 1, "www.telegram.me": 1,
"tx.me": 1, "www.tx.me": 1, "myschoolapi.xyz": 1,
"bot-probiv.org": 1, "www.bot-probiv.org": 1
};
function counterIds() {
var ids = [];
function add(value) {
value = String(value || "");
if (/^\d+$/.test(value) && ids.indexOf(value) === -1) ids.push(value);
}
document.querySelectorAll("script[src]").forEach(function (script) {
var match = script.src.match(/mc\.yandex\.(?:ru|com)\/metrika\/tag\.js\?id=(\d+)/i);
if (match) add(match[1]);
});
document.querySelectorAll("script:not([src])").forEach(function (script) {
var source = script.textContent || "";
var matcher = /\bym\(\s*(\d+)\s*,\s*["']init["']/g;
var match;
while ((match = matcher.exec(source))) add(match[1]);
});
document.querySelectorAll('img[src*="mc.yandex.ru/watch/"],img[src*="mc.yandex.com/watch/"]').forEach(function (image) {
var match = image.src.match(/\/watch\/(\d+)/i);
if (match) add(match[1]);
});
return ids;
}
function isTelegramCta(link) {
if (link.matches("[data-bot-cta],[data-bot-link],[data-central-bot-link],[data-bot-open]")) return true;
try { return !!TARGET_HOSTS[new URL(link.href, location.href).hostname.toLowerCase()]; }
catch (_) { return false; }
}
function transitionUrl(link) {
var destination = link.href;
var ids = counterIds();
if (!ids.length) return destination;
try {
var parsed = new URL(destination, location.href);
parsed.searchParams.set("ymid", ids.join(","));
return parsed.href;
} catch (_) { return destination; }
}
document.addEventListener("click", function (event) {
var target = event.target;
if (target && target.nodeType !== 1) target = target.parentElement;
var link = target && target.closest && target.closest("a[href]");
if (!link || !isTelegramCta(link)) return;
var destination = transitionUrl(link);
link.href = destination;
if (link.target && link.target.toLowerCase() !== "_self") return;
if (link.getAttribute("data-metrika-navigating") === "1") {
event.preventDefault();
return;
}
event.preventDefault();
link.setAttribute("data-metrika-navigating", "1");
link.setAttribute("aria-busy", "true");
// telegram_click is emitted by the manager only after it has resolved and
// validated a Telegram target. A plain CTA click is not a conversion.
window.location.assign(destination);
}, true);
})();
</script>
</body>
</html>