园子里的高手们,在园里潜水2年多了,今天出来透透气。这也是第二篇往首页推的东西,发个自制小工具帖,高手们就见笑了~~
昨天,老大让我采集一些数据。然后,在那些数据里面找出百度指数比较高的,做专题。4000+的数据啊。一个一个去百度上找,那得找到猴年马月。因为是程序员,所以对这种重复性的东西,肯定不干的。
因为百度指数应该也是一个比较出名的东西,应该会有一些类似批量查询的工具吧。所以,开始到网上找,“百度指数 批量查询 ”,还真有,没想到遍地都是,就尝试着下载了几个来看看。。结果,让我惊讶的是,这种工具,竟然都是收费的,最多一次就让你一次查询5-6个,所以,4000的数据量,肯定也是不允许的。
当时我就纳闷许久,就只是一个查询工具而已,做起来的话,应该也就是模拟请求,然后,分析数据,找到想要的。这样的工具用得着收费吗?尝试了好几个之后,最终放弃了。花那些时间去找,自己写都写出来了,而且还能写得完善,且是自己需要的功能。
所以就开始动手。不过百度也还真是可恶,偏偏是我想要的那个数据的地方给加密了,加密了。并且还不止一层。不过,这些都难不倒我,因为之前有过WEB外挂(黄金时代辅助程序)的制作经验,这些东西马上就迎刃而解了,当然,工具是必不可少的,比如,
1.HTTPwatch,用这个抓请求,如果不用这个的话,你根本都不知道请求的地址是哪个,或者是找这个地址就得花上大半天的。
2.Mtracer,正则表达式测试工具,这个的话,对于新手是必不可少的,好处有1,强大的正则表达式工具,2,高亮关键字。有时候,自己写出来的正则表达式,自认为完美,可就是出错,找不到。就是因为其中包括被忽略的关键字。如果高亮了的话,一般还是能看到的。
好了。在这里,就可以开始做模拟WEB请求类似的程序了,像什么农场,停车,还有(你知道的)。。。这些东西绰绰有余了。
哦,忘记了一个最重要的东西,那就是模拟请求的类, 现在网上应该有N多的教程了。我贴了自己专用的吧。
- 复制代码
- public class HttpClient : WebClient
- {
- // Cookie 容器
- private CookieContainer cookieContainer;
- /**/
- /// <summary>
- /// 创建一个新的 WebClient 实例。
- /// </summary>
- public HttpClient()
- {
- this.cookieContainer = new CookieContainer();
- ServicePointManager.Expect100Continue = false;
- }
- /**/
- /// <summary>
- /// 创建一个新的 WebClient 实例。
- /// </summary>
- /// <param name="cookie">Cookie 容器</param>
- public HttpClient(CookieContainer cookies)
- {
- this.cookieContainer = cookies;
- }
- /**/
- /// <summary>
- /// Cookie 容器
- /// </summary>
- public CookieContainer Cookies
- {
- get { return this.cookieContainer; }
- set { this.cookieContainer = value; }
- }
- /**/
- /// <summary>
- /// 返回带有 Cookie 的 HttpWebRequest。
- /// </summary>
- /// <param name="address"></param>
- /// <returns></returns>
- protected override WebRequest GetWebRequest(Uri address)
- {
- WebRequest request = base.GetWebRequest(address);
- if (request is HttpWebRequest)
- {
- HttpWebRequest httpRequest = request as HttpWebRequest;
- httpRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; QQPinyinSetup 620; QQPinyin 730; CIBA; .NET CLR 2.0.50727; InfoPath.2)";
- httpRequest.Accept = "text/javascript, text/html, application/xml, text/xml, */*";
- httpRequest.CookieContainer = cookieContainer;
- }
- return request;
- }
- }
复制代码
这个应该是比较完善的。对于大多数网站,用这个应该是足够了,可能某些需要些一些特定的设置。这里我就解释不清了。一般的网站只会做user-agent判断,再厉害一点就是refer判断。其他的就不太清楚了。
上午,这个东西已经属于成品了。贴个图让大家过过眼,是一个很小的工具。高手就别喷了。
呵呵,高手见笑了~~确实是很简单哈。。 鉴于现在网上现存的是收费的,暂时这个就不发布了,要的话,可以单发。
功能挺简单的,就一个导入,导出。并且导出,还没弄完善,比如要导出excel,或者SQL脚本啊,不过,导出可以导出指定的列。以\t结束,也就是一个TAB键,就算复制一下到excel也是可以的,所以暂时就没弄那么多了。怀着急切的心情,跟大家分享分享一下。
|