有可能获得验证码图像?

时间:2016-09-01 19:08:02

标签: vb.net httpwebrequest html-agility-pack

我想知道是否可以使用网络请求从网站获取验证码图像。问题是,每次刷新页面时,此验证码图像都会发生变化,例如: http://zapytaj.onet.pl/captcha/obrazek.jpg?6165303

您可以注意到,如果您刷新页面网址保持不变,但代码已更改。

页面上验证码的实现是:

            <img id="captcha-image" src="/captcha/obrazek.jpg?5842454"/>
<div>
   Complete captcha (<a href="javascript:;" onclick="$('#captcha-image').attr('src', '/captcha/obrazek.jpg?' + (Date.now() / 1000 | 0))">Refresh</a>)
    <input type="text" name="captcha_code" class="text">

每次刷新时,每个验证码的URL链接都会发生变化。所以,即使我得到验证码网址也不行,因为图像是随机生成的。

我管理了这样的事情:

Dim dt1970 As DateTime = New DateTime(1970, 1, 1)
Dim current As Date = DateTime.Now
Dim span As TimeSpan = current - dt1970

Dim requestUriString As String = "http://zapytaj.onet.pl/captcha/obrazek.jpg?" + (Convert.ToInt64(DateTime.Now) / span.TotalMilliseconds).ToString() + ""
Dim httpWebRequest As HttpWebRequest = CType(WebRequest.Create(requestUriString), HttpWebRequest)
httpWebRequest.CookieContainer = Me.cookieJar(4)
Dim httpWebResponse As HttpWebResponse = CType(httpWebRequest.GetResponse(), HttpWebResponse)
Dim image As Image = Image.FromStream(httpWebResponse.GetResponseStream())
httpWebResponse.Close()
Me.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
Me.PictureBox1.Image = image

我还应该添加按位AND操作,但我认为无论如何都行不通。我认为是因为我的应用和网站之间的DateTime值存在差异。

如果我只将http://zapytaj.onet.pl/captcha/obrazek.jpg作为requestUriString我获得了验证码图像,但正如我所说的不是那个。

带验证码图片的网址: http://zapytaj.onet.pl/register.html#register-email-form

0 个答案:

没有答案