我想知道是否可以使用网络请求从网站获取验证码图像。问题是,每次刷新页面时,此验证码图像都会发生变化,例如: 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