博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据采集知识
阅读量:5157 次
发布时间:2019-06-13

本文共 1838 字,大约阅读时间需要 6 分钟。

最近在采集数据所以自己写了个小工具,一般的网站可以直接模拟浏览器发送请求,然后用正则表达式分析页面提取需要的信息。

1 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 2 request.Method = "GET"; 3 request.Timeout = 5000; 4 request.UserAgent="Mozilla/5.0 (Windows NT 5.2; rv:27.0) Gecko/20100101 Firefox/27.0"; 5 request.Accept = "    text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; 6 request.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); 7 request.Headers.Add("Accept-Encoding", "gzip, deflate"); 8 request.KeepAlive = true; 9 request.Referer = System.Web.HttpUtility.UrlEncode(url);10 HttpWebResponse response = (HttpWebResponse)request.GetResponse();11 string html = string.Empty;12 if (response.ContentEncoding.ToLower() == "gzip")//如果使用了GZip则先解压13 {14     using (System.IO.Stream streamReceive = response.GetResponseStream())15     {16         using (var zipStream =17             new System.IO.Compression.GZipStream(streamReceive, System.IO.Compression.CompressionMode.Decompress))18         {19             using (StreamReader sr = new System.IO.StreamReader(zipStream, Encoding.GetEncoding("gbk")))20             {21                 html = sr.ReadToEnd();22             }23         }24     }25 }26 else27 {28     using (System.IO.Stream streamReceive = response.GetResponseStream())29     {30         using (System.IO.StreamReader sr = new System.IO.StreamReader(streamReceive, Encoding.GetEncoding("gbk")))31         {32             html = sr.ReadToEnd();33         }34     }35 }36 37 string pattern = "
(\\d+)
";38 Regex reg = new Regex(pattern, RegexOptions.IgnoreCase);39 MatchCollection matchs = reg.Matches(html);40 41 foreach (Match match in matchs)42 {43 string phone = match.Groups[1].Value;44 }

 

posted on
2014-04-26 22:04 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/liyaofang/p/3692559.html

你可能感兴趣的文章
Android开发技术周报 Issue#80
查看>>
hadoop2.2.0+hive-0.10.0完全分布式安装方法
查看>>
django知识点总结
查看>>
C++ STL stack、queue和vector的使用
查看>>
使用Reporting Services时遇到的小问题
查看>>
约瑟夫问题
查看>>
Arduino 报错总结
查看>>
树莓派Android Things物联网开发:树莓派GPIO引脚图
查看>>
矩阵快速幂---BestCoder Round#8 1002
查看>>
js兼容公用方法
查看>>
如何将应用完美迁移至Android P版本
查看>>
【转】清空mysql一个库中的所有表的数据
查看>>
基于wxPython的python代码统计工具
查看>>
淘宝JAVA中间件Diamond详解(一)---简介&快速使用
查看>>
Hadoop HBase概念学习系列之HBase里的宽表设计概念(表设计)(二十七)
查看>>
Kettle学习系列之Kettle能做什么?(三)
查看>>
Day03:Selenium,BeautifulSoup4
查看>>
awk变量
查看>>
mysql_对于DQL 的简单举例
查看>>
35. Search Insert Position(C++)
查看>>