Программа поиска релевантных записей в гугле.

Берясь за продвижение сайта бывает полезно оценить, какие страницы сами поисковики считают соответствующими данному запросу и следовательно или двигать эти страницы, или прикладывать усилия для смены целевой страницы.

В этой записи я расскажу как определить какие страницы наиболее релевантны определенным запросам. (По мнению гугла)

Continue reading «Программа поиска релевантных записей в гугле.»


Автор: Elsper.ru


VN:F [1.9.14_1148]
Rating: 3.3/10 (6 votes cast)

Скопировать все файлы из дерева в одну папку.

Возникла тут у меня задача обработать 103943 файла расположенных в 2618 папках.

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

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

Continue reading «Скопировать все файлы из дерева в одну папку.»


Автор: Elsper.ru


VN:F [1.9.14_1148]
Rating: 3.0/10 (3 votes cast)

Работа с JPG в Delphi (библиотека GDI+)

Решил я тут поковыряться в своих прогах, а они отказываются компилиться из за отсутсвия модулей GDIPAPI, GDIPOBJ и GDIPUTIL. Дело в том, что в последних версиях я юзал библиотеку GDI+, которая не установлена ни на одном из обоих ноутов.
Ну установил конечно, а вместе с тем решил, что можно ею поделиться с народом.

Все же представляемая по умолчанию работа только с bmp (в делфи 7) явно устарела.

С самого начала выложу библиотеку. Скачивайте

А теперь пара примеров работы с ней

Continue reading «Работа с JPG в Delphi (библиотека GDI+)»


Автор: Elsper.ru


VN:F [1.9.14_1148]
Rating: 4.0/10 (8 votes cast)

Скрытая загрузка картинок на PHP

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

<?
{$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>’);

?>

Чем этот код так замечателен? Continue reading «Скрытая загрузка картинок на PHP»


Автор: Elsper.ru


VN:F [1.9.14_1148]
Rating: 4.4/10 (7 votes cast)

Процедура чтобы грабить.

Я уже писал ранее как очень легко можно скачать баш.

Зачем тогда нужно еще что-то, если тот код работает?

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

Я написал полноценную процедуру, которую можно использовать почти «как есть». Лишь подкорректировав урл и номера страниц. Минус программы в том, что она парсит урлы по шаблону

адрес_сайта_всякие_параметры=1
адрес_сайта_всякие_параметры=2

К счастью основная часть динамических сайтов имеет именно такую структуру, и даже вордпресс со включенным ЧПУ можно парсить по «сайт.рф/?p=номер» (Но там есть свои сложности)

Короче код:

procedure pars;
var i:integer;
idhttppars:Tidhttp;
spisok,textik:TStringList;
begin

// инициализация

textik:= TStringList.Create;
spisok:= TStringList.Create;
idhttp
pars:=tidhttp.Create(nil);
idhttp
pars.HandleRedirects:=True;
idhttp
pars.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


VN:F [1.9.14_1148]
Rating: 3.0/10 (5 votes cast)
Страница 1 / 41 2 3 4 »

Спoнcopcкиe ссылки

уличное светодиодное освещение подробнее
свинцовые пули для пневматических винтовок
банковские карты с балансом перейти