我用DIHTTP模拟登陆到一个网站。
用DIHTTP.GET得到了网页源文件。
现在我想从源文件中得到具体的文章标题和连接,只得到文章标题的和连接,其他连接不需要。下一步就是把这些标题显示在软件上。我现在遇到的问题是不知道如何才能从IDHTTP.GET获得的网页源文件中取出想取的文章标题和连接,请大家帮帮我。我找了2天资料了,晚上因为这个都睡不着,明天还要上班,愁死了。希望有高人能加我QQ:820361799,教我一下,老大们,前辈们,跪谢了,谢谢谢谢了。实在不希望因为这个难题而放弃DELPHI,我已经学过很多很多门语言了,不想在变了。不知道怎么表达我的心情,真的很急,再次跪谢各位前辈了。

解决方案 »

  1.   

    看看HTML协议吧,不看的话,什么语言都是白费
      

  2.   

    IDHTTP.GET用它已经获取到源文件了,你可以根据<a href 进行获取,最好用正则表达式来进行处理
      

  3.   

    1。获取新闻列表页 html嗲吗
    2。过滤出 新闻列表 html 代码
    3。新闻列表html 分组,一组一个新闻地址,获取到 新闻的 连接
    4.剩下的应该会了吧
      

  4.   

    这点问题都能让你放弃delphi 那你就放弃吧。
      

  5.   

    补充一下:TPerlRegEx用这个控件,如果用delphi7的话,需要把pcre3.dll放在system32下面
    可以在网上查一下关于正则的表达式用法
      

  6.   

    对,用WEBBROWSER,偶还帮别人写过抓取资料的工具,当然,有少少苦力费
      

  7.   

    这个东西不需要webbrowser,应为占用资源太多,还释放不干净idhttp完全可以胜任。
    get之后得来的就是网页的全部内容了,之后就是分析字符串了,这是基础这个建议lz自己解决
      

  8.   

    如果没有脚本,那么可以使用XML解析器来解析,如果有使用脚本,那就只能通过浏览器等执行网页的代码了。
      

  9.   

    不知道lz问题解决没有,送你一些方法。function GetWheelStrEx(const AText, AStartText,AEndText: string;ipos: integer = 1): String;
    var
      ipos1,ipos2:Integer;
      L:Integer;
    begin
      ipos1 := PosEx(AStartText,AText,ipos);
      L := Length(AStartText);
      ipos2 := PosEx(AEndText,AText,ipos1 + L);
      Result := Copy(AText,ipos1 + L,ipos2 - ipos1 - L);
    end;uses
    StrUtils......一组独立标记:
    tmpstr := idhttp.get(AURL);
    tmpstr1 := GetWheelStrEx(idstr,'<title>','</title>');......有多组类似标记:
    procedure TfrmBot.Button1Click(Sender: TObject);
    var
      teststr:string;
      i,ipos:integer;
      str:string;
    begin
      teststr := '{1}{2}{3}{5}{8}{9}';
      i := 1;
      str := '';
      while PosEx('{',teststr,i) <> 0 do
      begin
        ipos := PosEx('{',teststr,i);
        i := ipos + 1;
        str := str + GetWheelStrEx(teststr,'{','}',ipos);
      end;
      ShowMessage(str);
    end;
    这个够详细了吧,楼主送分给我啊。呵呵...