如何从网站上抓取文字(验证码)?

时间:2018-02-20 07:21:46

标签: vb.net

我正在考虑从这个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

1 个答案:

答案 0 :(得分:0)

首先,我希望您在导航后实际上并没有尝试直接获取验证码 ,因为此时页面尚未下载。如果您是,那么您真的需要将代码移动到DocumentCompleted事件。

现在,InnerText获取 <input></input>标记之间的文本。它始终为空,因为<input>元素在其标记内没有任何内容。相反,他们将输入存储在value属性中,这是您必须得到的:

txt1.Text = WebBrowser1.Document.GetElementById("txtCaptcha").GetAttribute("value")