Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.24;
Скачать: CL | DM;

Вниз

ГРАБЕР текстов с сайта...   Найти похожие ветки 

 
Meriguan ©   (2007-06-02 18:11) [0]

Может уже было...
Вобщем есть сайт, с которого мне нужно стянуть только тексты, причем тексты не полностью страничек, а только часть.(чего греха таить, хочу сграбать грубо говоря базу текстов песен с аккордами). вопрос в следующем: каким образом с помощю делфи это можно организовать?


 
palva ©   (2007-06-02 18:17) [1]

Скачать файлы на компьютер, открыть, посмотреть нужные ссылки, найти нужные тексты, по ссылкам искать следующие файлы, тексты сохранить в нужном месте в нужном формате.


 
Meriguan ©   (2007-06-02 18:24) [2]

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


 
Meriguan ©   (2007-06-02 18:30) [3]

вкратце задача : есть урл, надо до 4 глубины скопировать ее но не полностью а лишь некоторый текст.
может так яснее. Телепорт про не предлагать!


 
Fredy314 ©   (2007-06-04 09:37) [4]

> [3] Meriguan ©   (02.06.07 18:30)

на http://delphiworld.narod.ru/ есть несколько вариантов
{Forces a download of the requested file, object, or directory
listing from the origin server, not from the cache}

function DownloadURL_NOCache(const aUrl: string; var s: String): Boolean;
var
  hSession: HINTERNET;
  hService: HINTERNET;
  lpBuffer: array[0..1024 + 1] of Char;
  dwBytesRead: DWORD;
begin
  Result := False;
  s := "";
  // hSession := InternetOpen( "MyApp", INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
 hSession := InternetOpen("MyApp", INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  try
    if Assigned(hSession) then
    begin
      hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, INTERNET_FLAG_RELOAD, 0);
      if Assigned(hService) then
        try
          while True do
          begin
            dwBytesRead := 1024;
            InternetReadFile(hService, @lpBuffer, 1024, dwBytesRead);
            if dwBytesRead = 0 then break;
            lpBuffer[dwBytesRead] := #0;
            s := s + lpBuffer;
          end;
          Result := True;
        finally
          InternetCloseHandle(hService);
        end;
    end;
  finally
    InternetCloseHandle(hSession);
  end;
end;

//aufrufen
var
  s: String;
begin
 if DownloadURL("http://www.swissdelphicenter.ch/", s) then
   ShowMessage(s);
end;


 
G_M_S ©   (2007-06-04 13:08) [5]


> Вобщем есть сайт, с которого мне нужно стянуть только тексты,

Частенько таким занимаюсь, как на Дельфи, так и на РНР ;))) Ессно за деньги. Бесплатно могу сказать только:

1. Подход к грабу текста в каждом случае (с каждым сайтом) свой, причем достаточно творческий, универсальные грабберы как правило толком все равно нифига не пашут

2. Граббер - это обычно мелкая кривая софтина, работающая стабильно до первой серьезной смены дизайна на сайте, после чего заказчику опять надо платить за ее переделку :)))

3. (по-существу): грузишь страницы при помощи TidHTTP, разбираешь, например, по DIV на блоки с целью вырезать нужное. Сцылы как правило вырезаются по имени файла, но если одна УРЛа встречается больше 1-го раза - то еще и по контексту.



Страницы: 1 вся ветка

Текущий архив: 2007.06.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
15-1180524116
Andy BitOff
2007-05-30 15:21
2007.06.24
Как вы думаете ...


11-1163643952
КВАНТ
2006-11-16 05:25
2007.06.24
Циклом читать и писать настройки из/в файл


15-1179978466
AleKo
2007-05-24 07:47
2007.06.24
Лицензия на BDS2006


15-1180074579
Jeer
2007-05-25 10:29
2007.06.24
Жара действует.


2-1180609067
ambhtr
2007-05-31 14:57
2007.06.24
Как удалить строку в текстовом файле?