📄 unit2.~pas
字号:
unit Unit2;
interface
uses
Classes, SysUtils, Dialogs, RegExpr, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, StrUtils;
type
TSouSuo = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
public
procedure Threaddone(sender: tobject);
end;
implementation
uses Unit1;
procedure TSouSuo.Execute;
var
str, str2: string;
Reg: TRegExpr;
i, j: Integer;
IdHTTP1: TIdHTTP;
strList: TStringList;
begin
i := 0;
str := 'http://www.baidu.com/s?lm=0&si=&rn=10&ie=gb2312&ct=0&wd=%s&pn=%d&cl=3';
strList := TStringList.Create;
strList.Delimiter := '+';
{for j := 0 to Form1.Memo2.Lines.Count-1 do
begin
strList.Add(Form1.Memo2.Lines.Strings[j]);
end;}
strList.Add(Form1.Memo2.Text);
ShowMessage(strList.DelimitedText);
IdHTTP1 := TIdHTTP.Create(nil);
str2 := IdHTTP1.Get(Format(str,[strList.DelimitedText,i]));
IdHTTP1.Free;
Reg := TRegExpr.Create;
try
Reg.Expression := '13\d{9}|15[3689]\d{8}';
while AnsiContainsText(str2,'<font size=3>下一页</font></a>') do //AnsiResemblesText str1 <> str2
begin
IdHTTP1 := TIdHTTP.Create(nil);
if Reg.Exec(str2) then
repeat
Form1.Memo1.Lines.Add(Reg.Match [0]);
UNTIL not Reg.ExecNext;
i := i + 10;
str2 := IdHTTP1.Get(Format(str,[strList.DelimitedText,i]));
IdHTTP1.Free;
end;
finally
Reg.Free;
end;
OnTerminate := Threaddone;
end;
procedure TSouSuo.Threaddone(sender: tobject);
begin
ShowMessage('搜索完成,共搜到'+inttostr(Form1.Memo1.Lines.Count)+'个手机号');
Form1.Button1.Enabled := True;
Form1.Button2.Enabled := False;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -