zoukankan      html  css  js  c++  java
  • 百度指数批量查询器。收费!!!?还是自己来吧。

         园子里的高手们,在园里潜水2年多了,今天出来透透气。这也是第二篇往首页推的东西,发个自制小工具帖,高手们就见笑了~~

         昨天,老大让我采集一些数据。然后,在那些数据里面找出百度指数比较高的,做专题。4000+的数据啊。一个一个去百度上找,那得找到猴年马月。因为是程序员,所以对这种重复性的东西,肯定不干的。

        因为百度指数应该也是一个比较出名的东西,应该会有一些类似批量查询的工具吧。所以,开始到网上找,“百度指数 批量查询 ”,还真有,没想到遍地都是,就尝试着下载了几个来看看。。结果,让我惊讶的是,这种工具,竟然都是收费的,最多一次就让你一次查询5-6个,所以,4000的数据量,肯定也是不允许的。

         当时我就纳闷许久,就只是一个查询工具而已,做起来的话,应该也就是模拟请求,然后,分析数据,找到想要的。这样的工具用得着收费吗?尝试了好几个之后,最终放弃了。花那些时间去找,自己写都写出来了,而且还能写得完善,且是自己需要的功能。 

        所以就开始动手。不过百度也还真是可恶,偏偏是我想要的那个数据的地方给加密了,加密了。并且还不止一层。不过,这些都难不倒我,因为之前有过WEB外挂(黄金时代辅助程序)的制作经验,这些东西马上就迎刃而解了,当然,工具是必不可少的,比如,

    1.HTTPwatch,用这个抓请求,如果不用这个的话,你根本都不知道请求的地址是哪个,或者是找这个地址就得花上大半天的。

    2.Mtracer,正则表达式测试工具,这个的话,对于新手是必不可少的,好处有1,强大的正则表达式工具,2,高亮关键字。有时候,自己写出来的正则表达式,自认为完美,可就是出错,找不到。就是因为其中包括被忽略的关键字。如果高亮了的话,一般还是能看到的。

        好了。在这里,就可以开始做模拟WEB请求类似的程序了,像什么农场,停车,还有(你知道的)。。。这些东西绰绰有余了。

        哦,忘记了一个最重要的东西,那就是模拟请求的类, 现在网上应该有N多的教程了。我贴了自己专用的吧。

    模拟WEB请求的类
    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也是可以的,所以暂时就没弄那么多了。怀着急切的心情,跟大家分享分享一下。

    2011-2-16后序:

    额,要发的人越来越多了,我都不知道怎么办了。这么多人回复。

    中间有一段时间出现小插曲。。。

    首先声明,此工具不是从百度官方请求得到,从第三方搜索得出。因为百度的gateway有5个参数,最后一个MD5加密的参数,凭我的技术,两个字,无解!庆幸的是第三方有高手破解,并可以查询。

    但是,前面几个我确实是发过去了,结果是被百度给他们的IP都封了,导致第三方也无法查询,这里要说声对不起了。工具自然也无法使用了。

    可是,最近再看的时候,可能是IP解禁了,貌似又可以用了。 现在我也不想再往外面发了,请大家都别向我咨询了。

        弄这个工具,纯属兴趣爱好,并无其他意思。   匿名评论已关。。

  • 相关阅读:
    2018 北京区域赛H
    LeetCode 第 207 场周赛
    LeetCode 第 209 场周赛
    LeetCode 第 211 场周赛
    PAT 甲级真题题解(121-155)
    PAT 甲级真题题解(63-120)
    PAT 甲级真题题解(1-62)
    Codeforces 1108E2 Array and Segments (Hard version)(差分+思维)
    Codeforces 1108F MST Unification(最小生成树性质)
    Codeforces 1092C Prefixes and Suffixes(思维)
  • 原文地址:https://www.cnblogs.com/fycayy/p/1828135.html
Copyright © 2011-2022 走看看