Недавно написал заметку про то, как можно определить сайты которые участвуют в биржах по продаже ссылок / баннеров. Собственно, болтовня-болтавнёй, теперь пришло время всё это реализовать программно.
И так, кодить будем на delphi (у меня 7 ветка), что хочу сказать, реализовал я только проверку в rotaban, rotapost и nolix.ru, сапу трогать не стал, но думаю, в ближайшем времени займусь и ей. Хотел запилить проверку в gogetlinks, но не нашёл способа как узнать есть ли там сайт или нет = ( кто знает — поделитесь p.s в конце заметки можно будет скачать софтинку, которая проверяет домены пачками, работает многопоточно.
Создаём проект, кидаем на форму edit c батоном и в uses добавляем tidhttp.
Как я уже писал тут проверка в rotapost и rotaban происходит путём запроса на урл:
http://www.rotapost.ru/buy/site/default.aspx?DOMEN
где DOMEN это домен который мы проверяем на наличие в бирже, т.е. например для этого блога ссылка будет выглядеть так
http://www.rotapost.ru/buy/site/default.aspx?wooden-stool.ru
а дальше просто смотрим, если нас редиректнуло на страницу rotapost.ru/bye то сайта нету в бирже, в противном случае он есть. Так же делаем и для rotaban, движки там похожи.
Собственно, в событие onclick кнопки пишем код:
http:=tidhttp.Create(nil); http.HandleRedirects:=true; http.get('http://www.rotapost.ru/buy/site/default.aspx?'+edit1.text)
тут мы создаём idhttp и делаем простой гет запрос на ротапост, в конце урла прописываем сайт, который берётся из edit’a. И теперь самое главное, проверяем текущий урл:
if http.URL.GetFullURI = 'http://www.rotapost.ru:80/buy/' then showmessage('Сайта нету в бирже') else showmessage('Сайта найден в бирже');
т.е. производим проверку, если урл соответствует ‘http://www.rotapost.ru:80/buy/’, то выдаём мессейдж о том, что сайта нету в бирже, в противном случае говорим что он там присутствует. Вот в принципе и всё, так же делаем и ротабана, только везде меняем rotapost на rotaban. Полный код
var http:tidhttp; .. http:=tidhttp.Create(nil); http.HandleRedirects:=true; http.get('http://www.rotapost.ru/buy/site/default.aspx?'+edit1.text) if http.URL.GetFullURI = 'http://www.rotapost.ru:80/buy/' then showmessage('Сайта нету в бирже') else showmessage('Сайта найден в бирже');
для того что-бы можно было проверять сайты пачками, можно всё это дело, например, крутить в цикле — то есть кидаем на форму memo (2 штуки) и пишем в первом интересующие сайты, затем в конце гет запроса меняем домен на текущий из списка по индексу цикла (о как сказал !хД), выглядит это примерно так:
var i:integer; .. ... for i:=0 to memo1.lines.count-1 do begin http.get('http://www.rotapost.ru/buy/site/default.aspx?'+memo1.lines[i]); .. memo2.lines.add(memo1.lines[i]); application.ProcessMessages();
Тут в принципе всё, перейдём к проверки в nolix. Как я уже писал сами знаете где, проверку можно осуществить, посмотрев исходный текст документа с проверяемого сайта, там необходимо искать строку
<!-- рекламная строчка Nolix -->
если это строка присутствует, то сайт находится в nolix. Если говорить о коде, то он будет таким:
var ts:tstringlist; .. ts:=tstringlist.create(); ts.text:=http.get(memo.lines[i]); if pos('',ts.text) > 0 then memo2.lines.add(memo.lines[i]+' +') else memo2.lines.add(memo.lines[i]+' -')
Это если в цикле делать.
Кстати, чуть выше я написал, что кину софтинку, её можно скачать на этой странице
- там программа по массовой проверка сео показателей, к ней же я и прикрутил эту утилитку.
Было бы здорово реализовать проверку на сапу. Софт получился бы шикарным.