Форум: "Прочее";
Текущий архив: 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