Я пытаюсь понять, как анализировать ранжирование, название и URL-адрес результатов поиска Google с помощью Delphi.Анализ результатов Google с помощью Delphi
Главным образом мне нужно получить все ссылки A и TEXT с тега H3 с определенным именем класса «r».
Вот функция, чтобы получить раздел результатов в HTML Google:
function TForm1.ExtractContainer: TStringList;
var
Doc : IHTMLDocument3;
i: Integer;
Download: IHTMLElement;
Coll: IHTMLElementCollection;
Anchor: IHTMLAnchorElement;
tmp : String;
begin
Result := TStringList.Create;
Doc := EmbeddedWB1.Document as IHTMLDocument3;
Download := Doc.getElementById('center_col') as IHTMLElement;
tmp := Download.innerHTML;
result.Text := AnsiReplaceStr(tmp, '<h3 class="r">', '<h3 class="r">'#13#10);
for i := 1 to result.Count -1 do
begin
tmp := ExtractTextBetween (result[i], 'href="','">');
memo1.Lines.Add(tmp);
end;
Как вы можете видеть в сНу идентификатор center_col
являются все результаты Google. Теперь мне нужно сделать какой-то вид, чтобы получить все ссылки A и TEXT из тега H3 с определенным именем класса «r».
Надеюсь, что кто-то может мне помочь!
http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 ** пробовали ли вы используя XML-парсер? ** –
@DavidHeffernan Основная проблема заключается в том, что can not получить ответ Google в формате XML. Вы предлагаете конвертировать из html в XML? –
В этом случае у вас есть html, поэтому вам нужен синтаксический анализатор html. Принцип не изменился. –