如题, 这是小弟的网页抓取数据代码
- C# code
while (resultType) { string result = string.Empty; string url = "http://search.zhenai.com/search/getfastmdata.jsps?gender=1&agebegin=25&ageend=35&workcityprovince=" + txtCityCode.Text + "&workcitycity=-1&Marriage=-1&Salary=-1&Education=-1&h1=-1&h2=-1&photo=1¤tpage=" + pageIndex; HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(url); hwr.Method = "GET"; hwr.Referer = "localhost"; using (WebResponse wr = hwr.GetResponse()) { StreamReader sr = new StreamReader(wr.GetResponseStream(), Encoding.Default); result = sr.ReadToEnd(); wr.Close(); } if (result.Contains(errorstr)) { resultType = false; pageIndex = 1; lblsuccess.Text = "当前城市数据采集完毕!"; MessageBox.Show("当前城市数据采集完毕!"); } else { //抓取数据代码 } }
但是我遇到个问题。 当我抓下来列表的用户连接之后, 访问之。 全部跳转到注册页面去了。 原因是没有通过登录验证, 这可如何是好?
------解决方案--------------------------------------------------------
不太可能,唯一可行的办法是你在采集前,先手工登录,再进行采集。
如果人没有用到验证码,可以做成自动登录,再采集。
如果用了验证码,网上有验证码识别的例子,可以用下,但效率太低,识别率不高,尤其是在asp.net下,还是不可避免的需要人工干预的。