我需要有关学校相关问题的帮助。
这是去年的测试,但我失去了答案,这是一个繁忙的一年,我不记得杰克因为我们不再使用Delphi了。
我们有这个网络表单:
<form action="action" id="id" method="post">
<input type="text" name="var_name_1" value="var_value_1"/>
<input type="text" name="var_name_2" value="var_value_2"/>
<input type="text" name="constant_name" value="constant_value" />
<input type="submit" name="button" value="submit" />
</form>
var_name_1
,var_name_2
,var_value_1
和var_value_2
是四个不同的字段名称和值,每次请求页面时它们都会更改,例如它们可能是这样的
<input type="text" name="12345" value="566"/>
<input type="text" name="1222" value="4444abcd"/>
然后,如果您再次请求该页面,他们会喜欢这个
<input type="text" name="666" value="123456789"/>
<input type="text" name="XXXLUKEXXX" value="A is the first letter"/>
我相信你明白了,我只需要澄清一些。
我记得如何使用Indy组件发布(我认为):
c := tidhttp.Create(self);
p := tstringlist.Create;
p.Add('var_name_1=var_value_1');
p.Add('var_name_2=var_value_2');
p.Add('constant_name=constant_value');
p.Add('button=submit');
result := c .Post('http://www.test.com',p);
p.Free;
c.Free;
但我不知道如何获取那些随机字段名称和值。特别是他们改变了。我知道如何使用TWebBrowser
执行此操作,但我需要Indy版本,因为我们转移到原始套接字。
答案 0 :(得分:1)
为了满足您的要求,您必须下载实际的HTML本身(例如使用TIdHTTP.Get()
)并从中解析网络表单数据,就像任何网络浏览器一样。解析HTML不在Indy本身的范围内。 Delphi可以使用第三方HTML解析器,或者您可以手动解析HTML,因为您确切知道要查找的内容。