我正在考虑从这个website中删除文本,以便我可以自动编译参加奥运会的所有孩子的结果。
此前,该网站只询问了注册号,但最近他们改变了布局,并开始要求验证码。虽然,我注意到验证码实际上并不是图像格式。
只有背景图像,并且随机生成数字叠加在其上。
<input type="text" id="txtCaptcha" class="txtcaptcha" disabled="" style="background-image:url(images/1.jpg);text-align:center; border:none;
font-weight:bold; font-family:Modern">
我正在考虑再次抓取文本,但验证码正在制造障碍。我知道如何填写其他文本框但无法获取验证码文本。
我尝试了这种天真的方法:
WebBrowser1.Navigate(http://silverzone.org/newweb/ITHO17Result.html)
txt1.Text = WebBrowser1.Document.getElementById("txtCaptcha").InnerText
但是txt1仍然是空白的! 对此事的任何帮助都会受到我的高度赞赏!
P.S:我只是一个厌倦了输入几个数字来检查其他学生成绩的学生。所以我想抓取网站并编译所有结果。另外,如果可能的话,你们中的任何人都可以向我提供代码,以便我可以直接将其输入MS Access或MySQL中的数据库。因为目前,我只是将所有结果保存到文本文件中!
样本注册号: T16851009-01
答案 0 :(得分:0)
首先,我希望您在导航后实际上并没有尝试直接获取验证码 ,因为此时页面尚未下载。如果您是,那么您真的需要将代码移动到DocumentCompleted
事件。
现在,InnerText
获取 <input></input>
标记之间的文本。它始终为空,因为<input>
元素在其标记内没有任何内容。相反,他们将输入存储在value
属性中,这是您必须得到的:
txt1.Text = WebBrowser1.Document.GetElementById("txtCaptcha").GetAttribute("value")