美文网首页
【网页采集】-百度-贴吧标题

【网页采集】-百度-贴吧标题

作者: 游戏终 | 来源:发表于2016-12-06 14:19 被阅读0次

    大致步骤

    1.建立连接
    2.摘写请求报文
    3.处理响应报文
    

    相关信息

    1.百度贴吧帖子格式

    Url:tieba.baidu.com/p/id
    title:
    贴吧404        该帖已经被删除。
    百度贴吧        该帖所在吧被合吧。
    新帖创建频率:800贴/min
    

    2.请求报文

    请求报文:
    GET /p/id/index.html HTTP/1.1
    Host:tieba.baidu.com:80
    

    首次尝试

    Socket sc;
    //建立连接
    sc.Connect("tieba.baidu.com",80);
    //发送报文
    sc.Send(b,b.length,0);
    //接受报文(接受到</title>为止)
    sc.Receive(b,b.length,0);
    //断开连接
    sc.Close();
    
    200ms/贴
    

    优化

    class Tie
    {
        Socket sc;
        long P;//每张贴的id
        TieList Tl;
        //异步连接
        public void NewSocket()
        {
            sc = new Socket(2, 1, 6);
            P = Tl.getP();
        }
        public void Begin()
        {
            sc.BeginConnect("tieba.baidu.com",80,CallBack,null);
        }
        public void CallBack(IAsyncResult Ir)
        {
            try
            {
                //发送报文
                sc.Send(b,b.length,0);
                //接受,处理报文(接受到</title>为止)
                sc.Receive(b,b.length,0);
                //请求新的IP
                P = Tl.getP();
            }catch{}finally{
                //断开连接
                try
                {
                    sc.EndConnect();
                }catch{}
            }
            //若成功,P更新,出现异常,P不变,进入循环。
            Begin();
        }
    }
    class TieList
    {
        //管理多个Tie引发的线程
        long P;
        private readonly object o = new object();
        public long GetP()
        {
            lock (o1)
            {
                 long l = P;
                 P += W;
                 return l;
             }
        }
    }
    
    30ms/贴      线程数:50
    

    存在问题

    该服务器会在短时间内发现该程序,并限制其效率( ̄▽ ̄)"

    解决办法

    改写请求报文:

    请求报文:
    GET /p/id/index.html HTTP/1.1
    Host:tieba.baidu.com:80
    Cookie:TIEBA_USERTYPE = 240918a9690f******; wise_device = 0; BAIDUID = 5536A9D00334A2********: FG = 1
    

    相当于获得一个游客身份登陆
    修改前:处理速度能维持20秒左右
    修改后:处理速度能维持超过5分钟

    注意!!

    没有一个网站管理者会喜欢遇到这种东西,因此在请求报文加上下面两行。

    User-Agent://程序的名字和目的。
    From://可以与你联系的途径,邮箱或微信之类的。
    

    给大家留一个可以商讨的余地。
    需要源码的请私信。

    相关文章

      网友评论

          本文标题:【网页采集】-百度-贴吧标题

          本文链接:https://www.haomeiwen.com/subject/aulrmttx.html