|
所谓的数据采集程序也就是网页小偷程序(大家别骂我哦),写完了来这里发点东西,希望大家有何高见共同研究.
1.在下载数据的开始,有些网站是要登录了才能看到相应的数据,这个就需要我们发送登录用户名和密码了,但我是登录了,但他服务器也不是垃圾,在他那里重定向了,共产生了2个SESSION,这第2个SESSION我就不知道如何捕抓.于是我就投机^-^,用软件将SESSION捕抓下来了1个叫Ethereal的软件,用以下代码加入到HTTP请求的头部 WebClient myWebClient = new WebClient(); string sessionkey=textBox78.Text; string refererurl=textBox77.Text; myWebClient.Headers.Clear(); myWebClient.Headers.Add("Cookie",sessionkey); myWebClient.Headers.Add("Referer", refererurl); myWebClient.Headers.Add("User-agent", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031107 Debian/1.5-3"); 这样就欺骗了服务器了,哈哈
2.第二部就是代码下载 byte[] myDataBuffer = myWebClient.DownloadData(remoteUri); download = Encoding.Default.GetString(myDataBuffer);
3.第3部就是数据的匹配了,我是将流读取到数据里,然后用IndexOf得到2个关键字段的位置,然后用Substring取出来的,我知道这很笨,但用正则表达式难啊(谁会的指点我下),匹配完了得到的字符串我就用以下的函数去掉了HTML代码: private string StripHTML(string strHtml) { string [] aryReg ={ @"<script[^>]*?>.*?</script>", @"<(\/\s*)?!?((\w+:)?\w+)(\w+(\s*=?\s*(([""'])(\\[""'tbnr][^\7])*?\7\w+).{0})\s)*?(\/\s*)?>", @"([\r\n])[\s]+", @"&(quot#34);", @"&(amp#38);", @"&(lt#60);", @"&(gt#62);", @"&(nbsp#160);", @"&(iexcl#161);", @"&(cent#162);", @"&(pound#163);", @"&(copy#169);", @"&#(\d+);", @"-->", @"<!--.*\n"
上一篇:部署安装时写入SQL SERVER和Web.config
下一篇:利用视图管理器编写高效 SQL SELECT 语句
|