您的位置:首页 > 编程语言 > Delphi

Delphi7 Webbrowser制作网页表单自动提交器按步分析(1)

2010-05-13 20:38 435 查看
Delphi7Webbrowser制作网页表单自动提交器按步分析(1)



相信很多朋友都有过这样的想法,一些单调的表单提交工作,能不能有一些简单方便的方法来完成这些重复的劳动。

比如说,注册用户啦,网站添加文章啦。。。

呵呵,现在小弟做了一个自动提交程序,说是自动,其实也不算啦,只能算半自动。

主要是用Webbrowser控件来完成,所以说速度上比不上HTML的IDHTTP来得快。多线程也没有使用到,因为用webbrowser线程好象没能

发挥太大的作用,webbrowser在线程运用中也很容易假死。。。

1、获取webbrowser自动提交表单的ID和索引。

下面介绍一下程序的使用方法以及它的源码及分析。

第一步首先在输入要提交的网页地址。

例如:

我们输入:www.baidu.com



点击分析网页,然后就可以把网页的INPUT标签都列出来了。

可以看到ID为Wd的表单就是百度的输入框了。‘百度一下’这个提交按钮并没有ID类型是submit。

怎么提取这些表单呢:

这里先说一下MSHTML

ITEM是MSHTML里一个集合。

网页DOCUMENT对象所有过元素都在这里。可以通过遍历它来得到某个标签的内容。

例如:object.item(0)得到第一个元素。

代码分析:

viewsource

print?

1
var
2
myitem:Olevariant;
viewsource

print?

1
myitem:=webbrowser1
.
Document;
viewsource

print?

01
for
i:=
0
to
myitem
.
all
.
length-
1
do
//遍历所有元素
02
begin
03
if
myitem
.
all
.
item(i).tagName=
'INPUT'
then
//表单一为INPUT标签,还有很多,可以换上'BUTTON','TEXTAREA',SELECT下拉选择等。。。
04
if
myitem
.
all
.
item(i).
type
<>
'hidden'
then
//有些是隐藏不可操作,所以就把这些挑去。
05
begin
06
07
stringgrid1
.
Cells[
0
,j]:=inttostr(j);
08
stringgrid1
.
Cells[
1
,j]:=inttostr(i);
//表单的索引号,即表单在集合中的第几个位置。
09
stringgrid1
.
Cells[
2
,j]:=myitem
.
all
.
item(i).tagName;
10
stringgrid1
.
Cells[
3
,j]:=myitem
.
all
.
item(i).
type
;
11
stringgrid1
.
Cells[
4
,j]:=myitem
.
all
.
item(i).name;
//表单的ID
12
stringgrid1
.
rowcount:=stringgrid1
.
rowcount+
1
;
13
14
j:=j+
1
;
15
end
;
viewsource

print?

1
end
;
viewsource

print?

1
viewsource

print?

1
在遍历
for
i:=
0
to
myitem
.
all
.
length-
1
do
的时候首先要保证webbrowser是有内容的,否则出错。
viewsource

print?

1
可以加一句判断:
if
form1
.
webbrowser1
.
Document=
nil
then
exit;
viewsource

print?

1
好了,这就得到表单的索引和ID啦。。。怎么自动提交呢?
viewsource

print?

1
按下来的话题就是提交了。。。呵呵
viewsource

print?

1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: