Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];

Вниз

парсить web страницы посоветуйте   Найти похожие ветки 

 
ford ©   (2009-10-30 12:28) [0]

Здравствуйте!
Поставили задачу, вытягивать информацию с разных страниц разных сайтов.
Я сделал так, гружу страницу в TWebBrowser и далее делаю примерно так

var
 ovElements: OleVariant;
 i: Integer;
begin
ovElements := Web.OleObject.Document.forms.item(0).elements;
for i := 0 to (ovElements.Length - 1) do
 Begin
   if (ovElements.item(i).tagName = TagName) and
     (ovElements.item(i).type = TagType) then ovElements.Item(i).Value:=Value;
 end;
end;


где TagName - имя тега а TagType тип тега соответсвенно

все вроде работает, но как-то не хорошо, ибо загружается в WebBrowser вся страница вместе с картинками и прочими прибамбасами
а хочется загружать страницу без картинок и не показывать ничего пользователю, а просто выводить уже необходимую информацию.

Подскажите как лучше решить данную задачу ?


 
antonn ©   (2009-10-30 12:46) [1]

через сокеты, забирать html


 
TUser ©   (2009-10-30 13:10) [2]

Скачай компоненты ICS


 
ford ©   (2009-10-30 13:27) [3]

попробовал через Indy
страницу получаю :)
но как потом вытягивать значения тегов?
можно конечно искать нужный теги и брать их значения прямо из текстового файла (html)
но нехочется изобретать велосипед
да и честно говоря можно просто зависнуть если разбирать таблицы :(

опять таки на TWebBrowser разбираю таблицы
вот так:

var
 i: integer;
 ovTable: OleVariant;
Begin
  ovTable := Web.OleObject.Document.all.tags("TABLE").item(1);
  for i := 1 to (ovTable.Rows.Length - 1) do
  begin
   Memo1.Lines.Append(ovTable.Rows.Item(i).Cells.Item(0).innerText);
  end;
end;  



согласитесь что так получается удобно, берешь таблицу, и по строкам пробежался взял что надо


 
b z   (2009-10-30 13:38) [4]


> можно конечно искать нужный теги и брать их значения прямо
> из текстового файла (html)
> но нехочется изобретать велосипед
Регулярные выражения.


 
ford ©   (2009-10-30 14:41) [5]


> Регулярные выражения.

я думал использовать регулярные выражения
но споткнулся с таблицами
куча тегов <tr> и <td> и как тогда например взять текст который расположен во второй ячейке третьей строки?


 
b z   (2009-10-30 15:23) [6]


> как тогда например взять текст который расположен во второй
> ячейке третьей строки?
Надо написать соотв. выражение, а потом по match-ам, и брать нужные.


 
TUser ©   (2009-10-30 15:37) [7]

Можно загрузить текст в тот же WebBrowser, если не боишься (я, например, боюсь).


 
Anatoly Podgoretsky ©   (2009-10-30 15:43) [8]

> ford  (30.10.2009 14:41:05)  [5]

В ВЕБе таблицы не регулярные, включая таблица в таблице.


 
Polkin   (2009-10-30 15:57) [9]

Делал когдато нечто подобное.

Брал текст Индями

IdHTTP.Get/Post

и вытягивал данные TRegExpr"ом, и привычно и удобно.

А IE в WebBrowser"е меня всегда пугал. =)


 
DVM ©   (2009-10-30 16:29) [10]

Для разбора HTML нужен SGML парсер. Если страницы в формате XHTML то можно попробовать XML парсером.


 
Dennis I. Komarov ©   (2009-10-30 16:38) [11]

Какой характер инфы? Может оказаться из пушки по воробьям...



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

Форум: "Прочее";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.023 c
2-1257442024
V
2009-11-05 20:27
2009.12.27
TBitmap и Array of Byte


1-1231859045
Игорь_Залозных
2009-01-13 18:04
2009.12.27
DrawText и текст, который не вместился в прямоугольник


2-1257739169
Андрей Смирнов
2009-11-09 06:59
2009.12.27
Как правильно передать массив URL в Функцию (WinInet)


15-1256321944
POOP
2009-10-23 22:19
2009.12.27
=> *.eps


15-1256739460
MonoLife
2009-10-28 17:17
2009.12.27
Пожирание памяти в Windows7 x64.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский