最近公司网站即将上线。。。但是数据库中没有数据, 所以老大让俺写一个数据采集程序, 去其他网站上把数据抓取过来, 但是我不知道咋写的。。。。。。。。。。做过的大神给点示例代码或者说说思路啊。 小弟拜托了!!!!!!!!!!!!!
------解决方案--------------------------------------------------------
看看正则表达式相关知识:
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;
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
1.利用WebClient或者WebRequest类和WebResponse类来获取网页源码
2.利用正则或者HTMLParser来解析并匹配你要抓取的数据(匹配规则根据你最终内容而变)