Чистка каталогов от мусора (признаки)

123
Ice_sCream
На сайте с 23.06.2005
Offline
116
#11
travolta:
catal0g.info/antispam.php - неработает скриптик :(

Подскажите в чём может быть трабл?

1. Может быть вы не оставтили названия таблиц по умолчанию.

2. Может быть какие-то изменения в вашей версии скрипта.

Зайдите в phpmyadmin своей базы данных и сообщите название таблиц пожайлуста.

ipconfig, дело в том, что предлагаемые методы не являются на 100 % или хотя бы на >50 % определяющими то, что сайт не должен быть в каталоге. Если определять ключевые фразы по кол-ву запятых, то это не выход, так как часто именно через запятые подряд указываются услуги, предоставляемые определенным сайтом, области работы и т.д.

Поиск по спецзнакам (типа @ и !), это можно, но мусора по ним найдем мало.

Пункт 2 согласен. Надо только определиться сколько же первых символов сравнивать.

Пункт 1 просто не имеет смысла в моем случае, но весьма пригодится многим.

Из моих идей сделать проверку на ключевые фразы не только по кол-ву запятых, но и на отсутствие точки, а также возможно на то, что все символы в нижнем регистре (включая первый).

Также следует убивать описания, где все символы в верхнем регистре.

В этой версии скрипта не написал, так как на разных хостинга встречаются свои мутки с локалью.

passing the acid test
I
На сайте с 29.04.2006
Offline
135
#12

Выкладываю , что есть. Предлагайте идем, допишем. Баги поправим:) Тестируйте.

Не забываем говорить спасибо:)) Скрипт для CNCat и MskCat.

Создаём файлик delspam.php в папке admin и туда пишем:


<?
include "auth.php";
include "_top.php";

?>
<html>
<head>
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Удаление спама (универсальный плагин)</title>
</head>




<?php
include "../config.php";
ini_set('display_errors',1);
error_reporting(E_ALL);

//Сравнение по n символам.
if(isset($_GET['sravnenie'])){
if(!is_numeric($_GET['sravnenie']))exit();
if($_GET['sravnenie']<15){echo "Error: Нет смысла проверять на менее 15 символов. Проверно практикой.";exit;}
echo "<font color=black size=3><b>Сравнивание титлов и описание по ".$_GET['sravnenie']." символам</b></font><br>";
$query="select * from cncat_main";
$result=mysql_query($query) or die("<br><b><center>Ошибка запроса в таблицу каталога</center></b><br>");
$sravn=array();
while($card=mysql_fetch_array($result)){
$title=substr($card['title'],0,$_GET['sravnenie']);
$descr=substr($card['description'],0,$_GET['sravnenie']);
if($title==$descr){ echo $title." - ".$descr."<br>"; $sravn[]="delete from cncat_main where lid=".$card['lid'];}
}
echo "<h1>Всего найдено: ".count($sravn)."</h1>";
echo "<p><a href=delspam.php?sravnenie=".$_GET['sravnenie']."&sravndel><h1>Удалить найденое</h1></a></p>";
if(isset($_GET['sravndel'])){foreach($sravn as $temp){if(mysql_query($temp)){echo "delete ok - $temp<br>";
} else {die("Error!");}}}exit;
}

//Поиск маленьких титлов по кол. символов
if(isset($_GET['smiletitle'])){
if(!is_numeric($_GET['smiletitle']))exit();
echo "<font color=black size=3><b>Поиск титлов, которые меньше ".$_GET['smiletitle']." символов</b></font><br>";
$kol=$_GET['smiletitle'];
$query="select * from cncat_main";
$result=mysql_query($query) or die("<br><b><center>Ошибка запроса в таблицу каталога</center></b><br>"); $kols=array();
while($card=mysql_fetch_array($result)){
if(strlen($card['title'])<$kol){
echo "[".$card['lid']."] - ".$card['title']."<br>";
$kols[]="delete from cncat_main where lid=".$card['lid'];}}
echo "<h1>Всего найдено: ".count($kols)."</h1>";
echo "<p><a href=delspam.php?smiletitle=".$_GET['smiletitle']."&smiledel><h1>Удалить найденое</h1></a></p>";
if(isset($_GET['smiledel'])){foreach($kols as $temp){ if(mysql_query($temp)){echo "delete ok - $temp<br>";} else {die("Error!");}}}
exit;
}

//Поиск маленьких описаний по кол. символов
if(isset($_GET['smiledescr'])){
if(!is_numeric($_GET['smiledescr']))exit();
echo "<font color=black size=3><b>Поиск титлов, которые меньше ".$_GET['smiledescr']." символов</b></font><br>";
$kol=$_GET['smiledescr'];
$query="select * from cncat_main";
$result=mysql_query($query) or die("<br><b><center>Ошибка запроса в таблицу каталога</center></b><br>"); $kols=array();
while($card=mysql_fetch_array($result)){
if(strlen($card['description'])<$kol){
echo "[".$card['lid']."] - ".$card['description']."<br>";
$kols[]="delete from cncat_main where lid=".$card['lid'];}}
echo "<h1>Всего найдено: ".count($kols)."</h1>";
echo "<p><a href=delspam.php?smiledescr=".$_GET['smiledescr']."&smiledel><h1>Удалить найденое</h1></a></p>";
if(isset($_GET['smiledel'])){foreach($kols as $temp){ if(mysql_query($temp)){echo "delete ok - $temp<br>";} else {die("Error!");}}}
exit;
}

//Поиск маленьних титлов по словам
if(isset($_GET['wordtitle'])){
if(!is_numeric($_GET['wordtitle']))exit();
echo "<font color=black size=3><b>Поиск титлов состоящих из менее ".$_GET['wordtitle']." слов</b></font><br>";
$kol=$_GET['wordtitle'];
$query="select * from cncat_main";
$result=mysql_query($query) or die("<br><b><center>Ошибка запроса в таблицу каталога</center></b><br>"); $kols=array();
while($card=mysql_fetch_array($result)){
$title=count(explode(" ",$card['title']));
if($title<$kol){
echo "[".$card['lid']."] - ".$card['title']."<br>";
$kols[]="delete from cncat_main where lid=".$card['lid'];}}
echo "<h1>Всего найдено: ".count($kols)."</h1>";
echo "<p><a href=delspam.php?wordtitle=".$_GET['wordtitle']."&smiledel><h1>Удалить найденое</h1></a></p>";
if(isset($_GET['smiledel'])){foreach($kols as $temp){ if(mysql_query($temp)){echo "delete ok - $temp<br>";} else {die("Error!");}}}
exit;
}

//Поиск маленьких описаний по кол. слов
if(isset($_GET['worddescr'])){
if(!is_numeric($_GET['worddescr']))exit();
echo "<font color=black size=3><b>Поиск описаний состоящих из менее ".$_GET['worddescr']." слов</b></font><br>";
$kol=$_GET['worddescr'];
$query="select * from cncat_main";
$result=mysql_query($query) or die("<br><b><center>Ошибка запроса в таблицу каталога</center></b><br>"); $kols=array();
while($card=mysql_fetch_array($result)){
$title=count(explode(" ",$card['description']));
if($title<$kol){
echo "[".$card['lid']."] - ".$card['description']."<br>";
$kols[]="delete from cncat_main where lid=".$card['lid'];}}
echo "<h1>Всего найдено: ".count($kols)."</h1>";
echo "<p><a href=delspam.php?worddescr=".$_GET['worddescr']."&smiledel><h1>Удалить найденое</h1></a></p>";
if(isset($_GET['smiledel'])){foreach($kols as $temp){ if(mysql_query($temp)){echo "delete ok - $temp<br>";} else {die("Error!");}}}
exit;
}

//Поиск спец. знаков
if(isset($_GET['spam'])){
if(!is_numeric($_GET['spam']))exit();
echo "<font color=black size=3><b>Поиск описаний по спец. знакам. более ".$_GET['spam']." знаков. Знак: ".$_GET['typ']."</b></font><br>";
$kol=$_GET['spam'];
$query="select * from cncat_main";
$result=mysql_query($query) or die("<br><b><center>Ошибка запроса в таблицу каталога</center></b><br>"); $kols=array();
while($card=mysql_fetch_array($result)){
$title=count(explode($_GET['typ'],$card['description']))-1;
if($title>$kol){
echo "[".$card['lid']."] - ".$card['description']."<br>";
$kols[]="delete from cncat_main where lid=".$card['lid'];}}
echo "<h1>Всего найдено: ".count($kols)."</h1>";
echo "<p><a href=delspam.php?spam=".$_GET['spam']."&typ=".$_GET['typ']."&smiledel><h1>Удалить найденое</h1></a></p>";
if(isset($_GET['smiledel'])){foreach($kols as $temp){ if(mysql_query($temp)){echo "delete ok - $temp<br>";} else {die("Error!");}}}
exit;
}

//Поиск плохих урл с html,php и партнёрских ссылок
if(isset($_GET['html'])){
echo "<font color=black size=3><b>Поиск УРЛ, которые с html,php страницы и партнёрские ссылки.</b></font><br>";
$query="select * from cncat_main";
$result=mysql_query($query) or die("<br><b><center>Ошибка запроса в таблицу каталога</center></b><br>"); $kols=array();
while($card=mysql_fetch_array($result)){
$url=$card['url'];
if ((substr_count($url, "/")>3)||(substr_count($url, ".htm")>0)||(substr_count($url, ".php")>0)||(substr_count($url, "?")>0)){
echo "[".$card['lid']."] - ".$card['url']."<br>";
$kols[]="delete from cncat_main where lid=".$card['lid'];}}
echo "<h1>Всего найдено: ".count($kols)."</h1>";
echo "<p><a href=delspam.php?html&smiledel><h1>Удалить найденое</h1></a></p>";
if(isset($_GET['smiledel'])){foreach($kols as $temp){ if(mysql_query($temp)){echo "delete ok - $temp<br>";} else {die("Error!");}}}
exit;
}

else {
?>
<h1>Сравнение титлов и описаний по первым n символам.</h1>
<form action='delspam.php' method='get' name=form2>
<input type="text" name="sravnenie" size="8">
<input type="submit" value ="Сравнение">
</form>

<hr size=1>

<h1>Поиск УРЛ, которые с html,php страницами и партнёрскими ссылками.</h1>
<form action='delspam.php' method='get' name=form2_1>
<input type="hidden" name="html" size="8">
<input type="submit" value ="Искать!">
</form>

<hr size=1>
<h1>Поиск мелких описаний и титлов (количество символов)</h1>
<form action='delspam.php' method='get' name=form4>
Количество символов в титле менее:<input type="text" name="smiletitle" size="8">
<input type="submit" value ="Найти!">
</form>

<form action='delspam.php' method='get' name=form5>
Количество символов в описании менее:<input type="text" name="smiledescr" size="8">
<input type="submit" value ="Найти!">
</form>
<hr size=1>

<h1>Поиск мелких описаний и титлов (количество слов ( разделение между словами считаются пробелы))</h1>
<form action='delspam.php' method='get' name=form6>
Количество слов в титле менее:<input type="text" name="wordtitle" size="8">
<input type="submit" value ="Найти!">
</form>

<form action='delspam.php' method='get' name=form7>
Количество слов в описании менее:<input type="text" name="worddescr" size="8">
<input type="submit" value ="Найти!">
</form>
<hr size=1>

<h1>Поиск по спец. знакам.(Например поиск спама от 1ps или поиска перечисления ключевиков)</h1>
<form action='delspam.php' method='get' name=form2>
Поиск в описаниях, содержащих более:
<input type="text" name="spam" size="8">
знаков: <select name=typ>
<option value="!">!</option>
<option value=".">.</option>
<option value=",">,</option>
<option value="?">?</option>
<option value="$">$</option>
<option value="@">@</option>
<option value="&">&</option>
<option value="*">*</option>
<option value="~">~</option>
</select>
<input type="submit" value ="Поиск">
</form>
<hr size=1>
<?

}


include "_bottom.php";
?>

В файле _top.php можете добавить этот пункт в меню:))

I
На сайте с 29.04.2006
Offline
135
#13
Ice_sCream:

ipconfig, дело в том, что предлагаемые методы не являются на 100 % или хотя бы на >50 % определяющими то, что сайт не должен быть в каталоге. Если определять ключевые фразы по кол-ву запятых, то это не выход, так как часто именно через запятые подряд указываются услуги, предоставляемые определенным сайтом, области работы и т.д.

Поиск по спецзнакам (типа @ и !), это можно, но мусора по ним найдем мало.

Пункт 2 согласен. Надо только определиться сколько же первых символов сравнивать.

Пункт 1 просто не имеет смысла в моем случае, но весьма пригодится многим.


Из моих идей сделать проверку на ключевые фразы не только по кол-ву запятых, но и на отсутствие точки, а также возможно на то, что все символы в нижнем регистре (включая первый).

Также следует убивать описания, где все символы в верхнем регистре.

В этой версии скрипта не написал, так как на разных хостинга встречаются свои мутки с локалью.

Но всёж. Поймал я через эти функции не мало спама.

Пункт 2: Чего определятся? Сколько хочешь - столько и сравниваешь.

Также следует убивать описания, где все символы в верхнем регистре.

Попробую сейчас найти под это функции:)

Ice_sCream
На сайте с 23.06.2005
Offline
116
#14

ipconfig, надо было скрипт в посте указать (CNcat). У нас народ лишнюю страницу читать не любит -)

I
На сайте с 29.04.2006
Offline
135
#15
Ice_sCream:
ipconfig, надо было скрипт в посте указать (CNcat). У нас народ лишнюю страницу читать не любит -)

Прописал))

Сделал поиск описаний, где:

1) Нет точек - не ловится, в основном нормальные

2) Нет запятых - не ловится, в основном нормальные

3) Нет и точек и запятых - тут ловится спам

Хотя тож не вариант. Идут нормальные сайты..

I
На сайте с 29.04.2006
Offline
135
#16

Дописал. Какие ещё идеи?

На данный момент:

Сравнение титлов и описаний по первым n символам.

Поиск описаний и титлов написанных только в верхнем регистре или только в нижнем

Поиск ОПИСАНИЙ написанных только в ВЕРХНЕМ регистре

Поиск ОПИСАНИЙ написанных только в нижнем регистре

Поиск ТИТЛОВ написанных только в ВЕРХНЕМ регистре

Поиск ТИТЛОВ написанных только в нижнем регистре

Поиск описаний, где нет точек или запятых (по выбору).

точек

запятых

точек и запятых

Поиск УРЛ, которые с html,php страницами и партнёрскими ссылками.

Поиск мелких описаний и титлов (количество символов)

Количество символов в титле менее

Количество символов в описании менее

Поиск мелких описаний и титлов (количество слов ( разделение между словами считаются пробелы))

Количество слов в титле менее

Количество слов в описании менее

Поиск по спец. знакам.(Например поиск спама от 1ps или поиска перечисления ключевиков)

SteelEagle
На сайте с 05.11.2006
Offline
25
#17

А чем вот плохи мелкие описания и тайтлз?

Ice_sCream
На сайте с 23.06.2005
Offline
116
#18
SteelEagle:
А чем вот плохи мелкие описания и тайтлз?

А чем хороши?

@sms
На сайте с 31.03.2006
Offline
98
#19

а можно добавить для этого мода к cncat-у при Поиск УРЛ, которые с html,php страницами и партнёрскими ссылками что б можно было галочками отмечать урлы которые удалять, а не все за один раз, может я свои хочу реферальские ссылки оставить!

продажа морд,сквозняков,внутренних ,опт pr2/3/4 и ТИЦ 50,110,170,200,220,475 DMOZ ЯК () + статьи по5$ навсегда (/ru/forum/94925) стучать в ICQ 2448853 цены по 2-8$ Пополняю и продаю Skype аккаунты.
I
На сайте с 29.04.2006
Offline
135
#20
@sms:
а можно добавить для этого мода к cncat-у при Поиск УРЛ, которые с html,php страницами и партнёрскими ссылками что б можно было галочками отмечать урлы которые удалять, а не все за один раз, может я свои хочу реферальские ссылки оставить!

Так это дописать то - 5 секунд..

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий