数据采集手工验证码老错误
HttpWebResponse result = null;
string jg = "";
txtResult.Text = "";
msg.Text = "";
string url = "http://jj.gdga.gov.cn/cx/wzss/wzss.do";
string cph1 = txtCph.Text.Substring(0, 1);
string cph2 = txtCph.Text.Substring(1, 6);
string payload = "jc=" + cph1 + "&hphm=" + cph2 + "&hpzl=" + cl + "&lxdh=" + cj + "&method=查询&randcode2=" + code;
try
{
HttpWebRequest req =(HttpWebRequest) WebRequest.Create(url);
req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)";
req.Expect = "Thu, 01 Jan 1970 00:00:00 GMT";
StringBuilder UrlEncoded = new StringBuilder();
Char[] reserved = { '?', '=', '&' };
byte[] SomeBytes = null;
if (payload != null)
{
int i = 0, j;
while (i < payload.Length)
{
j = payload.IndexOfAny(reserved, i);
if (j == -1)
{
UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i, payload.Length - i)));
break;
}
UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i, j - i)));
UrlEncoded.Append(payload.Substring(j, 1));
i = j + 1;
}
SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());
req.ContentLength = SomeBytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Close();
}
else
{
req.ContentLength = 0;
}
result = req.GetResponse();
Stream ReceiveStream = result.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader sr = new StreamReader(ReceiveStream, encode);
//msg.Text += "\r\n已接收到响应流";
Char[] read = new Char[256];
int count = sr.Read(read, 0, 256);
msg.Text += "HTML...\r\n";
while (count > 0)
{
String str = new String(read, 0, count);
jg += str;
count = sr.Read(read, 0, 256);
}
ReceiveStream.Close();
sr.Close();
msg.Text = jg;
上面就是我的代码,运行后取到的页面内容里面含有验证码错误,我不知道哪里出了问题,哪位朋友帮我讲解下,谢谢先了
------解决方案--------------------randcode2=" + code; code那来的。
------解决方案--------------------你会断点不???
断点看你取的内容就知道了啊。
验证码错误?难道你采集数据的页面需要输入验证码?
------解决方案--------------------你要采集的那个网站的某个页面上是不是要输入验证码???
网页上要求输入验证码,你程序去抓取,不会自动输入,就会报错 “验