О сайтах и не о сайтах

Викимонитор

поиск статей в википедии

Предисловие. Недавно в универе задали написать статью в вики, наверно для того, чтобы дать некое представление о верстке. Но не суть. Придя домой и зарегав акк, я начал вбивать в поиск слова, на которые я мог бы написать статью. Перебрав таким образом несколько десятков терминов и осознав, что основной проблемой будет не написание статьи, а поиск темы, которую еще не осветили в вики, я решил пойти другим путем, нежели тупой ручной поиск тем для статей. Вскоре был готов скриптик, которому скармливаешь список слов и он их всех пробивает на наличие соответствующих статей в вики. Ну нормуль, вбил список cms-ок, получил те, на которые статьи не написаны. Но врожденная лень/которая по совместительству к слову является и двигателем прогресса/ не дала мне писать статью с нуля. Скриптик был доработан и мониторил статьи уже в ру и англ вики, выдавая список слов, на которые написаны статьи в ен.вики и не написаны в ру.вики. Осталось только перевести. К чему это я? Да просто скриптик можно юзать не только для выполнения домашки.

Продолжу тему предыдущего echo "поста про вики";

?>. Вики можно юзать для получения трафа на свои сайты. Но разместить ссылку в статье это одно, а разместить ссылку так, чтобы ее не удалил – совсем другое.

Итак, разберемся как постить ссылки так, чтобы их не удаляли. Изначально подразумевается, что сайт представляет собой тематичный сдл. Иначе без шансов.

Собственно кто удаляет ссылки? Гости, модеры, авторы статей.

Гости. Ну что с них взять. Не особо разборчивы, не заинтересованы. Удалять будут в большинстве случаев только явный спам.

Модеры. Блюдут порядок круглосуточно. Удаляют спам, не тематичные и непонравившиеся ссылки. А также все, что хоть немного похоже на вышеперечисленное.

Авторы. Конкретную статью чаще всего мониторит именно автор. И он не допустит, чтобы его труды юзались для какой либо меркантильной цели. Так что если ссылка не является хорошим дополнение к статье, то жизнь ее будет не долгой.

Как соответственно поступать?

Ну во-первых не пытаться постить ссылки от имени “гостя”. Удалят практически наверняка. Так что акк придется-таки регать. Ну а дальше развитие событий по следующему сценарию:

- для сайта делаете список ключевиков, пробиваете их на наличие соответствующих статей в вики, если статьи нет – пишите, есть – ставите ссылку, если только она уместна

- Прокачиваете акк. Если у вас будут только правки статей с добавление линков, то и до бана недалеко. Так что придется писать статьи. Писать с нуля трудоемко, врядли кто-то обладает настолько широкими познаниями, что сможет писать статьи на любые темы подряд, не освещенные в ру.вики. Да и удалить статью могут. Так что оптимальный вариант – искать термины, на которые есть статьи в английской вики и нет в русской. И переводить, урезая или дополняя, в зависимости от оригинала. Да, трудно, но всяко легче, чем с нуля. А прокачанный акк в вики на дороге не валяется.

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

ЗЫ Сам скрипт под катом, может кому и пригодится. Вбивать надо слова так, как они содержатся в урле википедии, т.е. Php, а не php, т.е. первая буква прописная. Конечно, можно было дописать скрипт, чтобы он приводил все слова к единому формату, но некоторые термины надо вбивать полностью заглавными буквами, например GSM, NMT, CDMA. Насчет того, почему нельзя было написать скрипт, который работал бы не зависимо от способа набора слова – пробовал, но на все мои ухищрения вики отвечает 403 ответом сервера, так что сделал как мог. Ну и плюс ко всему если добавить, что вики иногда почему-то вместо 200 ответа возвращает все тот же 403, у скрипта получается достаточно большая погрешность.

Для примера можете скопипастить в форму следующую строку:

Drupal Twilight Energine Joomla Amiro

 


Поиск по ru.wikipedia.org
Поиск по ru.wikipedia.org и en.wikipedia.org
 

 

if (!empty($_POST['wiki'])) {
$str= preg_replace("/\t|\n/", " ", $_POST['wiki']);
$array=explode(" ", $str);
}

if (!empty($_POST['language']) && $_POST['language'] == 'rus')
{
foreach($array as $value) {
$sock = fsockopen('ru.wikipedia.org', 80, $en, $es, 10);
$page = "http://ru.wikipedia.org/wiki/".$value;
$sock = fsockopen('ru.wikipedia.org', 80, $en, $es, 10);
if (!is_resource($sock)) die('not connected');
fwrite($sock, "HEAD $page HTTP/1.0\r\n\r\n");
$array_head=explode(" ", fgets($sock, 256) );
if($array_head[1] == 200)
{echo "$value статья написана, перейти
";
}
if($array_head[1] == 403)
{echo " $value статья не написана, перейти
";
}

}

fclose($sock);

}

elseif (!empty($_POST['language']))

{

foreach($array as $value) {
$sock = fsockopen('ru.wikipedia.org', 80, $en, $es, 10);
$page = "http://ru.wikipedia.org/wiki/".$value;
$sock = fsockopen('ru.wikipedia.org', 80, $en, $es, 10);
if (!is_resource($sock)) die('not connected');
fwrite($sock, "HEAD $page HTTP/1.0\r\n\r\n");

$array_head=explode(" ", fgets($sock, 256) );

if($array_head[1] == 200)
{echo "$value ru статья написана, перейти";
}
if($array_head[1] == 403)
{echo " $value ru статья не написана, перейти";
}

fclose($sock);

$sock = fsockopen('en.wikipedia.org', 80, $en, $es, 10);
$page = "http://en.wikipedia.org/wiki/".$value;
$sock = fsockopen('en.wikipedia.org', 80, $en, $es, 10);
if (!is_resource($sock)) die('not connected');
fwrite($sock, "HEAD $page HTTP/1.0\r\n\r\n");

$array_head=explode(" ", fgets($sock, 256) );

if($array_head[1] == 200)
{echo "; en статья написана, перейти
";
}
if($array_head[1] == 403)
{echo "; en статья не написана, перейти
";
}
fclose($sock);
}
}

Комментарии

Спасибо за полезную информацию. Добавил ваш сайтик в закладки)))

Добавить комментарий

Содержимое данного поля является приватным и не предназначено для показа.