用Indy控件访问HTTPS

uses
  HtmlParser
 
procedure TForm4.Button1Click(Sender: TObject);
var FNodes:IHtmlElement;
   aString:string;
begin
  FNodes := parserHtml(Memo1.Text);
 aString:= FNodes.Children[2].Children[1].Children[5].Children[0].InnerText;
end;
复制代码
//判断某子结点是否存在,增加代码的可靠性
//if NodeIsExist(FNodes,
//'Children[2].Children[3].Children[11].Children[3].Children[1].Children[1].Children[1].Children[0]'
//)  then
//Memo3.Lines.Add(
//FNodes.Children[2].Children[3].Children[11].Children[3].Children[1].Children[1].Children[1].Children[0].InnerText
// );
  function NodeIsExist(Root:IHtmlElement;Childrens:string):Boolean ;
  var aStringlist:tStringlist;   i,aIndex:integer;
      aNode:IHtmlElement;   aStr:string;
  begin
    Result:= False;
    aStringlist:=TStringList.Create;
  aStringlist.Delimiter := '.';
  aStringlist.DelimitedText := Childrens;

  aNode:=Root;
  for i := 0 to aStringlist.Count-1 do  begin
    aStr:=Copy(aStringlist[i],10,Length(aStringlist[i])-10);
    aIndex:= StrToIntDef(aStr,0);
   if aIndex>=  aNode.ChildrenCount  then  begin
    aStringlist.Free;
    Exit;
   end;
     aNode:=aNode.Children[aIndex];
  end;
   aStringlist.Free;
   Result:= true;
  end;
复制代码

      HtmlParser例子

复制代码
 //NodeIsExist的优化版,更高速,只处理最大结点0~99
 function NodeIsExist(Root:IHtmlElement;Childrens:string):Boolean ;
  VAR i:integer;
   aNode:IHtmlElement;
  begin
     Result:= False;
     aNode:=Root;
     for i:=1 to Length(Childrens) do    begin //aString[1]从1开始,而不是从零开始
       if Childrens[i]=#93 then begin  //  ']'
           if Childrens[i-2]=#91 then    begin    //  '['
           if StrToIntDef(Copy(Childrens,i-1,1),0)>=  aNode.ChildrenCount  then   Exit;  //一位数
           aNode:=aNode.Children[StrToIntDef(Copy(Childrens,i-1,1),0)];
           end;
           if Childrens[i-3]=#91 then    begin //  '['
           if StrToIntDef(Copy(Childrens,i-2,2),0)>=  aNode.ChildrenCount  then   Exit;  //二位数
           aNode:=aNode.Children[StrToIntDef(Copy(Childrens,i-2,2),0)];
           end;
       end;

     end;
    Result:= true;
  end;
复制代码

 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。 总是说我字少。