Вниз
Скачать: CL | DM;

парсить 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.009 c
15-1256645623
Rule
2009-10-27 15:13
2009.12.27
Как узнать таблицу разделов на дисках и вообще как это работает


2-1257708059
andrewtitoff
2009-11-08 22:20
2009.12.27
Почему не фильтруется ADOQuery?


15-1255535983
SP
2009-10-14 19:59
2009.12.27
Флешки. Как запретить открытие при установке?


2-1257909781
igan
2009-11-11 06:23
2009.12.27
Типы данных C, VB -> Delphi


15-1256487519
Kolan
2009-10-25 19:18
2009.12.27
Статья «Обобщённое программирование(generics) в Delphi 2009 ...»




   Наверх