如何编程登陆codelphi这个网站,并下载其内容,最好用indy 其它组件也可(100),上次来的朋友们表示感谢,同时需要领分(100分)

  • 主题发起人 主题发起人 陈晨
  • 开始时间 开始时间

陈晨

Unregistered / Unconfirmed
GUEST, unregistred user!
还有谁有具体的方法请指教,我是刚刚准备用delphi写一个网络程序的,就遇到了这个问题
 
www.51delphi.com 较新
 
说说什么意思?
 
楼上,你用的是delphi几?
能不能详细说一下你的意图。
 
用任一http控件的get和post方法,足矣
 
陈晨?怎么和我的名字发音一样?呵呵~~~
楼上的说的好像对啊,只是我没有试过,
想来应该可以吧,不然现在这样多的论坛都设置了验证,呵呵~~~
 
to:晨晨
呵呵呵,早就注意到了,我的好多的名字都有同名的。
alonecloud我主页的名字,前几天在一个论坛中出现了喝呵呵
还有dtqcjzq,这样子的名字在一个求职的网站中竟然也有,不过注册的是个女的,然后
我用下一句诗作为密码。靠竟然一样哈哈。

回到主题,我打算用idhttp.post登陆这个主页,然后得到里面的东西。(主要打算用程序实现)
各位帮忙验证之后可以吗,然后告诉我方法。我用delphi6+sp2的memo中的idhttpclient中的
例子如何也登陆不了的,没办法。求助了。大富翁小富翁,还有跟我一样的贫穷的人呀
帮帮我吧,这里线谢谢各位了
 
www.codelphi.com网站是要登陆后才可以看内容的,要下东西好像不太容易 ,
只有和大鱼儿联系罢!
 
不懂,学习。。。[:)]
 
嗯不说下载了,怎么样用程序登陆并打开其内容吧
 
可以登录的,但是需要保留Cookie
自己封装一个表单,进行提交,根据关键字判断返回的页面来确定是否登录成功
 
以前做过一个登录hnmcc发短信的程序,下面是代码,自己看看就明白了:

unit Unitlogin;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, OleCtrls, SHDocVw, ComCtrls, ExtCtrls;

type
TForm2 = class(TForm)
EditUserName: TEdit;
EditPassWd: TEdit;
ButtLogin: TButton;
Label1: TLabel;
Label2: TLabel;
StatusBar1: TStatusBar;
MemoContent: TMemo;
ButtSend: TButton;
EditDSC: TEdit;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Timer1: TTimer;
Button1: TButton;
Timer2: TTimer;
Editsjjg: TEdit;
Label6: TLabel;
Lblfscs: TLabel;
lblfscs1: TLabel;
WebBrowser1: TWebBrowser;
procedure ButtLoginClick(Sender: TObject);
procedure WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
procedure ButtSendClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure EditUserNameKeyPress(Sender: TObject; var Key: Char);
procedure EditPassWdKeyPress(Sender: TObject; var Key: Char);
procedure EditDSCKeyPress(Sender: TObject; var Key: Char);
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Sendmsg;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;
fscs:integer;
implementation

{$R *.DFM}

procedure TForm2.ButtLoginClick(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.hnmcc.net');
editUserName.Enabled :=False;
editPasswd.Enabled :=False;
buttLogin.Enabled :=False;
StatusBar1.SimpleText:='正在登录>>>>>';

end;



procedure TForm2.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var
k:integer;
t:OleVariant;
begin


if (WebBrowser1.LocationURL='http://www.hnmcc.net/') then
begin
t := WebBrowser1.Document;
for k := 0 to t.all.length - 1 do
begin
if (uppercase(t.all.item(k).tagName)='INPUT')and (uppercase(t.all.item(k).Name)='NAME') then
t.all.item(k).value:=editUserName.Text;
if (uppercase(t.all.item(k).tagName)='INPUT')and (uppercase(t.all.item(k).Name)='PASSWD') then
t.all.item(k).value:=editPasswd.Text ;
if (uppercase(t.all.item(k).tagName)='INPUT')and (uppercase(t.all.item(k).Name)='') then
begin
t.all.item(k).click;
break;
end;
end;
Label1.Visible :=False;
Label2.Visible :=False;
edituserName.Visible :=False;
EditPasswd.Visible :=False;
buttlogin.Visible :=False;
Label3.Visible :=True;
Label4.Visible :=True;
editDsc.Visible :=True;
memocontent.Visible :=True;
buttSend.Visible :=True;
Button1.visible:=True;
editsjjg.Visible :=True;
label6.Visible :=True;
end;
if (WebBrowser1.LocationURL='http://www.hnmcc.net/index.php') then
begin
buttSend.Enabled :=True;
StatusBar1.SimpleText:='登录成功';
editDsc.SetFocus ;
end;
end;
procedure TForm2.Sendmsg;
var
k:integer;
t:OleVariant;

begin
buttsend.Enabled :=False;
t := WebBrowser1.Document;
for k := 0 to t.all.length - 1 do
begin
if (uppercase(t.all.item(k).tagName)='INPUT')and (uppercase(t.all.item(k).Name)='DSC_MOBILE') then
begin
t.all.item(k).value:=editDSC.Text ;
break;
end;
end;
for k := 0 to t.all.length - 1 do
begin
if (uppercase(t.all.item(k).tagName)='TEXTAREA')and (uppercase(t.all.item(k).Name)='SMSCONTENT') then
begin
t.all.item(k).value:=memocontent.Text ;
break;
end;
end;
for k := 0 to t.all.length - 1 do
begin
if (uppercase(t.all.item(k).tagName)='INPUT')and (uppercase(t.all.item(k).Name)='SUBMIT') and (uppercase(t.all.item(k).value)='发送')then
begin
t.all.item(k).click;
break;
end;
end;

end;
procedure TForm2.ButtSendClick(Sender: TObject);
var
i:integer;
begin
sendmsg;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
Label3.Visible :=False;
Label4.Visible :=False;
editDsc.Visible :=False;
memocontent.Visible :=False;
buttSend.Visible :=False;
fscs:=0;
end;

procedure TForm2.EditUserNameKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then editpasswd.SetFocus ;
end;

procedure TForm2.EditPassWdKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then buttlogin.SetFocus ;
end;

procedure TForm2.EditDSCKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then memocontent.SetFocus ;

end;

procedure TForm2.Timer1Timer(Sender: TObject);
var
myHandle: Integer;
begin
myHandle:=FindWindow(nil,'Microsoft Internet Explorer'); //就是窗口的Caption
if myHandle<>0 then
begin
postmessage(myHandle,WM_CLOSE,0,0);
fscs:=Fscs+1;
lblfscs1.Caption:=inttostr(fscs);
end;
end;

procedure TForm2.Timer2Timer(Sender: TObject);
begin
if ButtSend.Enabled then ButtSend.Click ;
end;

end.
 
TO:lizhaohui
能详细的说说吗?
 
嘻嘻,问对人了。我原来在大富翁提问题,每人理,我就写段小程序,自动登录,自动刷新[:D]

procedure TForm1.LogIn;
var
doc: IHtmlDocument2;
form, input, item: OleVariant;
begin
if FLogin then Exit;
doc := WebBrowser1.Document as IHtmlDocument2;
if doc = nil then Exit;
form := doc.all.tags('form');
// form.item(0)就是登录窗体
input := form.item(0).tags('INPUT');
// 用户名输入框
item := input.item(2);
item.value := edtUserName.Text;
// 口令输入框
item := input.item(3);
item.value := edtPassword.Text;
// 提交这个form就登录了
form.item(0).submit;
end;

procedure TForm1.RefreshQuestion;
var
doc,all,collection,form,Input:OleVariant;
begin
doc:=WebBrowser1.Document;
all:=doc.all;
collection:=all.tags('FORM');
form:=collection.item(3);
collection := form.tags('INPUT');
// 找到“将此问题提前”按钮,click
Input := collection.item(0);
Input.click;
end;
 
哦,我明白了,我说怎么前一段时间,老是有问题一直提前显示,原来。。。
 
吹云哥们手好快,呵呵。我的方法和他的一样的。
 
各位呀,你们试验一下应该不复杂吧,
总是让我欣喜让我失望
5555555555555555555555555555555555555555555555555555555555555555
 
所以,不要拿来破坏大富翁的秩序啊(一群人对着avant龇牙,只许avant...,不许我...?)

说实话,这是不道德的。我只用过一次,非常紧急,持续不到一天。至于吹云老兄说的,估计
不是我,真的不是我,比窦娥还冤哪[:D]
 
哈哈,以前确实出些过这种情况,希望各位不要拿来破坏大富翁的秩序啊。

avant:
冤也不冤呀,你毕竟用过嘛。
 
后退
顶部