Недавно мы все с вами столкнулись с такой проблемой как блокировка крупнейшего форум сайта 4pda.ru
Причиной блокировки послужило размещение пользователями форума плейлистов, содержащих один из спортивных телеканалов.
Для меня конечно было шоком, когда я зашел на свой любимый сайт, и увидел это:
(Доступ к информационному ресурсу ограничен на основании Федерального закона от 27 июля 2006 г. N 149-ФЗ "Об информации, информационных технологиях и о защите информации")
Что ? Как? Зачем? Почему?
И тут я начал искать информацию о произошедшем, благо люди хоть какое то объяснение оставили на форумах, первое что мне посоветовали так это активировать VPN , но к сожалению это мне не помогло. И тут мне пришлось парсить используя прокси Белоруссии.
Настроев сервер и шлюзы я создал долгожданный файл:
pars-4pda.php
Потратив пару часов у меня получилось вот что:
парсер 4пда, надо создать каталог site, и пустые файлы seo.txt url.txt, а так же для сайта нужен js для работы сохранить его в 1.js
/site/
seo.txt 0777
url.txt 0777
1.js
index.php
reklama.php
pars-4pda.php
menu.php - для дополнений которые будут на всех страницах
<?php // код в файле pars-4pda.php
$url_site=$_GET[url];
if ($url_site==false){ // если нет get
$url_site="//4pda.to/forum/index.php";
}
$url_site = preg_replace('[&]', '&', $url_site ); // убираем ошибку шрифта &
echo "Cканирую страницу - $url_site <br><br>";
/* $html - некий html-код некой страницы, \n - это переход на новую строку (верстальщики иногда это делают) */
$html = file_get_contents("https:$url_site");
/* Вызываем функцию, которая все совпадения помещает в массив $matches */
preg_match_all("/<[Aa][\s]{1}[^>]*[Hh][Rr][Ee][Ff][^=]*=[ '\"\s]*([^ \"'>\s#]+)[^>]*>/", $html, $matches);
$urls = $matches[1]; // Берём то место, где сама ссылка (благодаря группирующим скобкам в регулярном выражении)
/* Выводим все ссылки */
file_put_contents("url.txt", ""); // очищаем файл ссылок
for ($i = 0; $i < count($urls); $i++)
if (preg_match('[4pda.to/forum/index.php]', $urls[$i])) { // есть ли embed
if (preg_match('[act=auth]', $urls[$i])) { // есть ли embed
//echo "пропускаем";
}else{
$co = preg_replace('[&]', '&', $urls[$i] ); // убираем ошибку шрифта &
file_put_contents("url.txt", "$co\n", FILE_APPEND); // записываем ссылку
$urls[$i]=strstr($urls[$i], '?'); // убираем все до embed
$urls[$i]=str_replace('?', '', $urls[$i]); // убираем само embed
echo "$urls[$i]<br>"; // показать ссылку
$cl = str_replace("?", "", $urls[$i]);
$cl = preg_replace('[&]', '&', $cl ); // убираем ошибку шрифта &
$html = file_get_contents("./site/$cl");
if ($html==false){ // проверяем что еще не парсили страницу
//echo " - нету"."<br/>";
$cow = preg_replace('[&]', '&', $urls[$i] );// убираем ошибку шрифта &
$content = file_get_contents("https://4pda.to/forum/index.php?%24cow="); // загружаем контент
if ($content==true){ // проверяем сто контент есть
$s='
<script type="text/javascript" src="../1.js"></script>
<iframe id="menu-iframe" src="../menu.php" ></iframe>
'; // дополнить
$y1='<a href="//4pda.to/forum/">ФОРУМ</a>';
$y2='https://4pda.to/forum/index.php?showtopic=1024777%27;
$y3='Блокировка 4-pda.ru - описание ситуации';
$y4='ФОРУМ';
$y1 = (iconv( "UTF-8","windows-1251", $y1)); // переводим шрифт на русский
$y2 = (iconv( "UTF-8","windows-1251", $y2)); // переводим шрифт на русский
$y3 = (iconv( "UTF-8","windows-1251", $y3)); // переводим шрифт на русский
$y4 = (iconv( "UTF-8","windows-1251", $y4)); // переводим шрифт на русский
$content = preg_replace("[$y1]", "<a href='../index.php'>$y4</a></li>", $content); // убираем
$content = preg_replace("[$y2]", '../reklama.php', $content); // убираем
$content = preg_replace("[$y3]", '', $content); // убираем
$content = preg_replace('[//4pda.to/forum/index.php\?]', '', $content); // убираем
$content = preg_replace('[index.php\?]', 'index.php', $content); // убираем
$content = preg_replace('[function]', '', $content); // убираем
$content = preg_replace('[<script]', '<!--script', $content); // убираем
$content = preg_replace('[/script>]', '/script-->', $content); // убираем
$content = preg_replace('[https:showtopic=1024777]', '../reklama.php', $content); // убираем
$col = str_replace("?", "", $urls[$i]);
$col = preg_replace('[&]', '&', $col );// убираем ошибку шрифта &
file_put_contents("./site/$col"," $content $s"); // сохроняем спарсеную страницу
$seo = file_get_contents("seo.txt"); // счетчик сохранений
$seo++;
file_put_contents("seo.txt",$seo);
//echo $content;
}
}else{
//echo " - есть"."<br/>";
}
}
}
$seo = file_get_contents("seo.txt"); // счетчик сохранений
echo "Сохранено страниц - $seo<br><br>";
$u = file_get_contents("url.txt"); // читаем список
$array = explode("\n", $u); // указали что списак масссив
$str = count($array); // считаем сколько строк в масиве
$r=rand(1,$str);
$url="$array[$r]"; // случайная ссылка из сохраненных рание ссылок
echo "Перехожу далее на - $url";
echo "<META HTTP-EQUIV='Refresh' CONTENT='5; URL=?url=$url'>"; // задершка и переход
exit;
?>
в файле index.php я разместил весь код от главной страницы форума 4pda но скрыв все родные скрипты добавив только свой доработанный js (вот с ним то мне пришлось попыхатся)
но через часок все уже было готова!
К сожалению весь код сюда написать не могу но оставляю вам ссылку для ознакомления!
Вот таким вот способом я спас данный сайт пусть даже всего на две недели но все же!
https://disk.yandex.ru/d/5AoBqmOjYW5xDw