目的:程序中有一个关键字符串,文本框中输入一个网址,点查找按钮,打开网页并获取源码,查出网页中是否存在该关键字符串,如果不存在则跳转下一页面继续查找,直到找到此关键字符然后提出。
目前已实现获取到源码阶段,下面不会了,希望大家可以给个思路,应该如何实现,另外获取源码时程序处于假死状态,这个如何处理呢?

解决方案 »

  1.   

    源码都获得了,查找字符串就容易了,假死状态不知道你用的什么控件获取源码的,如果是Id的,那么加IdAntiFreeze1这个控件就可以了,要么用线程!
      

  2.   


    楼上说的没错!你使用的是WebBrowser吗?
      

  3.   

    function GetWebPage(const Url:string):string;
    var
    Session,   
    HttpFile:HINTERNET;   
    szSizeBuffer:Pointer;   
    dwLengthSizeBuffer:DWord;   
    dwReserved:DWord;   
    dwFileSize:DWord;   
    dwBytesRead:DWord;   
    Contents:PChar;   
    begin
        Session:=InternetOpen('',0,niL,niL,0);   
        HttpFile:=InternetOpenUrl(Session,PChar(Url),niL,0,0,0);   
        dwLengthSizeBuffer:=1024;   
        HttpQueryInfo(HttpFile,5,szSizeBuffer,dwLengthSizeBuffer,dwReserved);   
        GetMem(Contents,dwFileSize);   
        InternetReadFile(HttpFile,Contents,dwFileSize,dwBytesRead);
        InternetCloseHandle(HttpFile);   
        InternetCloseHandle(Session);   
        Result:=StrPas(Contents);   
        FreeMem(Contents);   
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
    i,j: integer;
    add,str,url,test:string;
    begin    memo1.Text:=GetWebPage('http://www.baidu.com/s?wd=电影下载&pn=0');
        str:=memo1.Text; //源码内容
        url:=Edit1.Text; //域名地址     i:=1;
          while  i <> 0 do
            begin
              i:=Pos(Url,Trim(str));
              add:=getstr(str,'innerHTML,''url'':this.href,''p1''','y'':');
              Delete(str,i,Pos(Url,str)+1);
          end;        Edit3.Text := ADD; //排名显示出来end;我想实现的思路是,在百度搜索电影下载,获取源码后,查询源码里是否有我输入的网址,如果第一页没有,调转下一页继续查找,直到找到。也可以在20页范围内查找。<table border="0" cellpadding="0" cellspacing="0" id="1"><tr><td class=f><a  onmousedown="return c({'fm':'as','F':'779337CA','F1':'9D73F1E4','F2':'4CA6DF6A','F3':'54E5243F','T':'1253848585','title':this.innerHTML,'url':this.href,'p1':1,'y':'3DFE4FF3'})" href="http://www.dygod.net/"  target="_blank" ><font size="3">电影天堂_迅雷电影_最新<font color="#c60a00">电影下载</font>_dygod</font></a><br><font size=-1>免费迅雷<font color="#c60a00">电影下载</font>,<font color="#c60a00">电影下载</font>,最好的迅雷<font color="#c60a00">电影下载</font>站<br><font color="#008000">www.dygod.net/ 82K 2009-9-24  </font> - <a href="http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f73577828d4368d4e414c4224655023ba3ed28356003c4b2797077ae5e2ce8e73702207254a0eac89f3cdbace422&p=c262d05485cc42ed08e2963750&user=baidu"  target="_blank"  class="m">百度快照</a> <br><a class="m"  target="_blank"  href="s?cl=2&wd=%B5%E7%D3%B0%CF%C2%D4%D8%20site:www.dygod.net">www.dygod.net&nbsp;上的更多结果</a></font></td></tr></table>查询后每页基本有10块这样的分类,红色那里的P1后面就是排名数,我想如果符合我们输入的网址,就把P1后面的数取出来,不符合继续下一页查找。