当前位置: 代码迷 >> ASP.NET >> asp.net数据采集程序,怎么做?给点思路啊 大神!
  详细解决方案

asp.net数据采集程序,怎么做?给点思路啊 大神!

热度:8423   发布时间:2013-02-25 00:00:00.0
asp.net数据采集程序,如何做????给点思路啊 大神!!!
最近公司网站即将上线。。。但是数据库中没有数据, 所以老大让俺写一个数据采集程序, 去其他网站上把数据抓取过来, 但是我不知道咋写的。。。。。。。。。。做过的大神给点示例代码或者说说思路啊。 小弟拜托了!!!!!!!!!!!!!

------解决方案--------------------------------------------------------
看看正则表达式相关知识:

http://manual.phpv.net/regular_expression
------解决方案--------------------------------------------------------
这个弱爆了,我以前就是干这个的, 了解下 httpContex ,webbrowser 就能做。
------解决方案--------------------------------------------------------
抓取页面 然后根据正则去掉不规则的代码及字符。
C# code
 WebRequest myReq = WebRequest.Create("http://www.baidu.com/s?ie=gb2312&wd=" + GB2Unicode(“中国”) + "&pn=1&cl=3");                WebResponse myRes = myReq.GetResponse();                Stream resStream = myRes.GetResponseStream();                StreamReader sr = new StreamReader(resStream, Encoding.GetEncoding("utf-8"));                result = sr.ReadToEnd();                myRes.Close();                resStream.Close();                sr.Close();                 //读取html文件                MatchCollection allMatchResults = null;                for (int i = 1; i <= n; i++)                {                    string str = "id=\""+i.ToString()+"\"";                    if (result.IndexOf(str) >= 0)                    {                        result = result.Substring(result.IndexOf(str));                        allMatchResults = Regex.Matches(result, "(<a[^>]*>).*?(</a>)", RegexOptions.IgnoreCase);                        if (allMatchResults.Count > 0)                        {                            string lianjie = allMatchResults[0].Value;                            lianjie = lianjie.Replace("background-image", "");                            lianjie = lianjie.Replace("onmousedown=", "");                            lianjie = lianjie.Replace("<em>", "");                            lianjie = lianjie.Replace("</em>", "");                            strs.Add(lianjie);                        }                     }                }                return strs;
------解决方案--------------------------------------------------------
探讨
引用:

抓取页面 然后根据正则去掉不规则的代码及字符。
C# code

WebRequest myReq = WebRequest.Create("http://www.baidu.com/s?ie=gb2312&amp;amp;wd=" + GB2Unicode(“中国”) + "&amp;amp;pn=1&amp;amp;cl=3");
WebResponse ……

------解决方案--------------------------------------------------------
1.利用WebClient或者WebRequest类和WebResponse类来获取网页源码
2.利用正则或者HTMLParser来解析并匹配你要抓取的数据(匹配规则根据你最终内容而变)
  相关解决方案