Дела..
18.04.2011
Прошлая запись была всего 4 дня назад, а по ощущениям прошло недели полторы…
И еще столько же думаю пройдет за оставшиеся 4 дня..
Скорая поездка заставила меня решать множество вопросов в сжатые сроки. А так же принять пару предложений подработать, и тоже их выполнить быстро.
Одно предложение было довольно простое. Читать полностью »
Автор: Elsper.ru
Гиперкубы – 2
22.02.2011
Есть у меня две записи совсем не в тему блога, но тем не менее достойные некоторого внимания, в связи с своей уникальностью.
Изображения гиперкубов, с объяснением что это. К тому же это обсуждение продолжилось в комментах.
Стереокартинки тех же изображений. Передающие объем фигур. Так вот в комментах мне подкинули идею сделать анимацию, над тем и задумался, ибо давно не решал интересных задачек. Вместо того чтобы разбираться в прежнем коде написал новый, которые получился еще лучше. В этот раз я нигде не хранил координаты точек и их взаимные связи. В общем помимо самой задачи получил еще и удовольствие от хорошо придуманного алгоритма
Стереопару тоже осилил, хотя в динамике с таким количеством линий она не производит особого впечатления, хотя до шестого включительно если внимательно смотреть и знать на что смотреть, то появление каждого следующего измерения видно очень хорошо.
В общем две гифки суммарно на 6 метров: Читать полностью »
Автор: Elsper.ru
Скрытая загрузка картинок на PHP
10.02.2011
Представляю вашему вниманию один очень простой код, который тем не менее открывает не хилые перспективы в использовании картинок в дорвеестроении.
<?
{$fp = fopen($_SERVER['DOCUMENT_ROOT'].’/img.php’, ‘w+’);
fwrite($fp, ‘<? header(«Content-type: image/gif»); readfile ($_SERVER["DOCUMENT_ROOT"].»/fotka/1.jpeg»); ?>’);
fclose($fp);}
echo (‘<img src=img.php>’);
?>
Чем этот код так замечателен? Читать полностью »
Автор: Elsper.ru
Процедура чтобы грабить.
16.01.2011
Я уже писал ранее как очень легко можно скачать баш.
Зачем тогда нужно еще что-то, если тот код работает?
Дело в том что иногда страницы не загружаются, сервак там затупит или еще что-то печальное. И парсер виснет, ну или в лучшем случае переходит на следующий адрес. Вот и я с такой проблемой столкнулся. Можно было конечно удовлетвориться и тем что скачал, но…
Я написал полноценную процедуру, которую можно использовать почти «как есть». Лишь подкорректировав урл и номера страниц. Минус программы в том, что она парсит урлы по шаблону
адрес_сайта_всякие_параметры=1
адрес_сайта_всякие_параметры=2
К счастью основная часть динамических сайтов имеет именно такую структуру, и даже вордпресс со включенным ЧПУ можно парсить по «сайт.рф/?p=номер» (Но там есть свои сложности)
Короче код:
procedure pars;
var i:integer;
idhttppars:Tidhttp;
spisok,textik:TStringList;
begin
// инициализация
textik:= TStringList.Create;
spisok:= TStringList.Create;
idhttppars:=tidhttp.Create(nil);
idhttppars.HandleRedirects:=True;
idhttppars.ReadTimeout := 3000;
if FileExists(‘papka/’)= false then // Задаем название папки куда будем сохранять скачанные страницы
mkdir(‘papka’);
for i:=1 to 1000 do // здесь задаем циферки
begin
spisok.Append(inttostr(i));
end;
// конец инициализайции.
i:=-1;
while i < spisok.Count-1 do
begin
i:=i+1;
//form1.button1.Caption:= inttostr(i)+’/'+inttostr(spisok.Count-1); // Это индикатор выполнения. Если хотите подставьте вместо батон1, что нибудь другое и раскомментируйте строку.
application.ProcessMessages;
if FileExists(‘papka/’+spisok[i]) then
begin
spisok.Delete(i);
i:=i-1;
end
else
begin
try
textik.Text:=idhttppars.Get(‘урл=’+spisok[i]); // Здесь конструируем адрес страницы
textik.SaveToFile(‘papka/’+spisok[i]);
except end;
end;
end;
idhttppars.Free ;
textik.Free;
i:=spisok.Count-1;
//form1.Memo1.Lines:=spisok; // это один из инструментов отладки и наблюдения за работой процедуры можно удалить, можно наблюдать.
spisok.Free;
if i < 1 then application.Terminate else pars; // в конце парсинга процедура вызывает закрытие проги, если вы этого не хотите, то удалите вызов application.Terminate
end;
Не забудьте добавить в uses модуль IdHTTP, если его там еще нет.
Конечно можно упростить например вынести инициализацию и освобождение в отдельные части, но тогда это удобнее всего делать в классе формы. То есть переменные описать там где описываются общие переменные формы, инициализацию и первичное заполнение массива ( я их даже обозначил для вашего удобства) можно в tform1.FormCreate засунуть. А саму процедуру вызывать например с кнопки и в ней написать:
pars;
idhttppars.Free ;
textik.Free;
spisok.Free;
Соответственно убрав эти три строки из тела процедуры. Но мне захотелость сделать именно в виде автономной процедуры
Автор: Elsper.ru
Хотя публика и встретила холодно прошлый пост все же продолжу про адалт дорвеи.
В этом посте мы сгенерируем на php простенький сайт.
Сразу скажу, поисковые системы постоянно меняются и новые доры иногда ведут себя не так как ожидалось. Хотя старые чаще всего держатся нормально лишь иногда сбавляя трафик.
Два последних дора я делал в соответствии с тем что напишу ниже. Делал их в конце августа, начале сентября. За октябрь они принесли 21к уников. За ноябрь 20к, так что как видно траф не только не спал но и подрос. Расходов в сапе суммарно 600р в месяц на обоих. Доходы почти 3000 за октябрь, 2800 за ноябрь на сегодняшний день.
Конечно бывают и неудачные дорвеи, тут раз на раз не приходится… Если смотреть эти доры раздельно, то получится слегка другой взгляд. Один дор принес за ноябрь 2350 при расходах 200, другой только 450 при тех же тратах. При чем в октябре второй дор вообще ушел в легкий минус.
Автор: Elsper.ru