Kamrad.ru
 
 
дневники | кабинет | регистрация | календарь | участники | faq | правила | поиск | фотоальбом | каська | выйти
Kamrad.ru Kamrad.ru » Авторские форумы » Убей в себе ламера » Delphi - help!
новая тема  ответить следующая тема | предыдущая тема
Автор
 
DeadUshka - offline DeadUshka
19-03-2002 20:31 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад-Костяное Ухо



Delphi - help!

Вот такой вопрос. Как сделать такую прогу, которой скармливаешь URL, а на выходе получаешь source странички с этим URL?


__________________
Не дергайся - хуже будет

Drundia - offline Drundia
20-03-2002 06:50 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



А зачем такая прога? Таких прог много. И бразузер тебе может сделать дело, и менеджером скачать можно. А зачем же прогу писать? Или это тебе в универе задали?

DeadUshka - offline DeadUshka
20-03-2002 08:03 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад-Костяное Ухо



Drundia
Чтобы распотрошить несколько тысяч страниц и вытащить нужную мне инфу

New_Drive - offline New_Drive
20-03-2002 13:10 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



DeadUshka А почему именно на Delphi... Ну ладно. Можно использовать Майкрософтавские объекты (Microsoft Internet Controls или Microsoft Internet Transfer Control 6.0). Объекты стандартные, поэтому они есть практически в любом языке (и в Дельфи тоже). Я использовал эти объекты из Visual Basic (по-моему, очень подходит к твоей задаче) и из C++.
Первый объект представляет из себя браузер. Для прочитывания страницы ты должен создать объект WebBrowser1 и написать примерно следущее (текст на басике, но как я уже сказал объект стандартен):
WebBrowser1.Navigate2 "адресс"
Do While WebBrowser1.ReadyState <> READYSTATE_COMPLETE
Start = Timer
Do While Timer < Start + 3
DoEvents
Loop
Loop 'Цикл ждет пока страница полностью прочтется
My_Text = WebBrowser1.Document.All(0).innerHTML

Итак в My_Text - текст страницы (в HTML).
Второй объект используется в основном для ftp. Для прочитывания страницы ты должен создать объект Inet1 и написать примерно следущее:
My_Text = Inet1.OpenURL("адресс")
Итак в My_Text - текст страницы (в HTML).

DeadUshka - offline DeadUshka
21-03-2002 00:22 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад-Костяное Ухо



New_Drive
Спасибо, конечно, я уже нашел способ лучше

Drundia - offline Drundia
21-03-2002 06:55 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Всё павно не пойму, зачем писать программу? Программ умеющих скачивать файлы в сети как тараканов!

DeadUshka - offline DeadUshka
21-03-2002 10:37 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад-Костяное Ухо



Не скажу

kengura - offline kengura
21-03-2002 11:32 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



DeadUshka
Спасибо конечно, я уже нашел способ лучше
Все равно, на всякий случай расскажу как решил подобную задачу.
1) Вариант первый - через Delphi при помощи компонента HTML с вкладки Internet. В Delphi есть пример использования - > webbrows.dpr. Разобраться не сложно. Прогу я написал, однако сервер с которого я сливал странички через некотрое время упал. Причина, насколько я понял, в том, что моя прога наоткрывала на нем кучу сессий. Понял я это не сразу - сервер падал несколько раз. Добиться нормальной работы программы у меня так и не получилось.

2) Вариант второй - использование подручных средств, а именно Excel'я.

Попробуй создать в экселе следующий макрос и запусти его

Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 21.03.2001 (kengura)
'
With ActiveSheet.QueryTables.Add(Connection:="URL;http://www.kamrad.ru/kvb/", Destination:=Range("A1"))
.Name = rq
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.Refresh BackgroundQuery:=False
End With
'
End Sub

Если все 10000 страниц однотипны и тебе нужна именно информация, а не HTML-ные тэги - очень удобно.

PS Может быть это кому-нибудь поможет.

Текущее время: 01:05
новая тема  ответить следующая тема | предыдущая тема
 
Перейти:

версия для печати   отправить эту страницу по e-mail   подписаться на эту тему

 
Powered by: vBulletin Version 2.0.1
Copyright ©2000, 2001, Jelsoft Enterprises Limited.
Любое использование материалов сайта
возможно только с разрешения его администрации.


 

Рейтинг@Mail.ru
Рейтинг@Mail.ru