300分如何获取某网业中某一段字符串?(300分)

  • 主题发起人 主题发起人 SP229
  • 开始时间 开始时间
S

SP229

Unregistered / Unconfirmed
GUEST, unregistred user!
学写一个数据库程序,每期开奖后自动获取内容.请教如何做?
procedure TForm1.Timer1Timer(Sender: TObject);
begin
//如果有更新就取内容.
edit1.text:=......................;
end;
 
tmp:= idhttp.get('http://www.ff18.com');
if pos('广州', tmp) > 0 then
showmessage('发现了');
 
这里:http://www.qqfzl.net/
取:045期开奖结果:16-10-42-19-46-07 T:20
下面是我的程序片断:
procedure TFrmLH.GetKJJG;//获取开奖结果
var
i,N: integer;
s: string;
jgLis: TStringList;
begin
jgLis:=TStringlist.Create;
jgLis.Add(IdHTTP1.Get(ini.ReadString('Https','BM1','')));//网址
for i := 0 to jgLis.Count-1do
begin
s:=jgLis.Strings;
N:=pos(ini.ReadString('Https','BM1_Str',''),s);
if N>0 then
begin
edit3.Text:=COPY(S,N,38);
break;
end;
end;
end;

但就是取不到
 
procedure TForm1.Button1Click(Sender: TObject);
var
IDHTTP: TNMHttp;
temps,tempr:string;
i:integer;
function replacing(S,source,target:string):string;
var site,StrLen:integer;
begin
site:=pos(source,s);
if site<>0 then
begin
StrLen:=length(source);
delete(s,site,StrLen);
insert(target,s,site);
result:=replacing(s,source,target);
end
else
result:=s;
end;
begin
IDHTTP:= TnmHTTP.Create(nil);
try
try
IDHTTP.Get(EDIT1.Text);//取得网页内容
temps:=copy(idhttp.body,pos('#f6f6f6',idhttp.Body)-44,1065);
tempr:=replacing(replacing(replacing(temps,'<tr><td align='+#39+'center'+#39+' height='+#39+'18'+#39+' bgcolor='+#39+'#f6f6f6'+#39'>',''),'</td><td align='+#39+'center'+#39+' height='+#39+'18'+#39+' bgcolor='+#39+'#f6f6f6'+#39+'>',''),'</td></tr>','');
if ((length(tempr)-1) mod 16)=0 then
begin
for i:=1 to ((length(tempr)-1) div 16 )do
begin
memo1.Lines.Add(copy(tempr,1,11)+','+copy(tempr,12,5));
tempr:=copy(tempr,17,length(tempr));
end;
end;

except
end;
finally
IDHTTP.Free;
end;
end;
这个是我获取我中了网站的福彩开奖号码的代码,给你参考哦!呵呵!
 
我试试看!
 
to xt2002xt
我的D7没有TNMHttp组件,怎么办呢?
请试试下面这个网址,你可以获取开奖结果能获取吗?
http://www.qqfzl.net/
045期开奖结果:16-10-42-19-46-07 T:20
试好后分全给你!
 
用 TIDHTTP 组件,D7 自带的。
uses StrUtils;
procedure TForm1.Button2Click(Sender: TObject);
const
cbegin
= '<font size="3">';
cEnd = '</font>';
iLenbegin
= Length(cbegin
);
iLenEnd = Length(cEnd);
var
s: TStringStream;
sHtml: String;
ibegin
,iEnd: Integer;
begin
s := TStringStream.Create('');
try
IdHTTP1.HandleRedirects := True;
//http://www.qqfzl.net
IdHTTP1.Get('http://www.855800.com/1218.htm',s);
sHtml := s.DataString;
ibegin
:= Pos(cbegin
,sHtml);
Inc(ibegin
,iLenbegin
);
iEnd := PosEx(cEnd,sHtml,ibegin
);
ShowMessage(Copy(sHtml,ibegin
,iEnd - ibegin
));
finally
s.Free;
end;
end;
 
to liyinwei
你的方法太好了,而且又快,还问一下,怎么找到"/1218.htm"页面的,
如何确定常量:cbegin
,cEnd
 
要写一大段代码来完成2句可以完成的东西,无语了。
 
to 白河愁
用你的取不到结果! 但liyinwei的方法可以取到!
procedure TForm1.Button1Click(Sender: TObject);
var
tmp: string;
begin
tmp:= idhttp.get('http://www.qqfzl.net/');
if pos('045期开奖结果', tmp) > 0 then
showmessage('发现了') else
showmessage('没发现!!')
end;

提示"没发现!!"
 
to liyinwei
能否说说如何取得下面网址的开奖页面?晚上回来散分!
http://www.qqfzl.net
 
网页上很多内容都是连接其它网页上的内容,直接查看http://www.qqfzl.net 网页代码你并不能发现你所要的字段,在http://www.qqfzl.net 网页上用鼠标指向你要查看的位置,单击右键,弹出菜单,点属性,上面就有连接网址了.
进入'http://www.855800.com/1218.htm网页编辑你会发现 <div align="center"><b><font size="3">你要找的那一段字符 </font></b></div>;这段代码,你要的内容就是从<font size="3">开始,到</font>结束的中间一段.
白河愁的方法基本是一样的,只是他只简单写了思路,当然就找不到.
 
多谢隐士山人,你让我又学会了一招.
现在散分
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部