示例#1
0
 public RequestResultDto UpdateIpProxy(IpProxy model)
 {
     try
     {
         _ipProxyDao.UpdateIpProxy(model);
         _result.Ret = 0;
         _result.Msg = "修改成功";
     }
     catch (Exception e)
     {
         _result.Msg = e.Message;
     }
     return(_result);
 }
示例#2
0
        protected override void Handle(Page page)
        {
            // 利用 Selectable 查询并构造自己想要的数据对象
            var            totalVideoElements = page.Selectable.SelectList(Selectors.XPath("//tr/td[2] | //tr/td[3] | //tr/td[4] | //tr/td[5] | //tr/td[6]")).Nodes().ToList();
            List <IpProxy> results            = new List <IpProxy>();
            var            i    = 1;
            var            j    = 0;
            var            name = "";

            foreach (var videoElement in totalVideoElements)
            {
                if (i % 5 == 0)
                {
                    var proxy = new IpProxy();
                    var strs  = name.Split(':');
                    proxy.CreateTime = DateTime.Now;
                    proxy.FlushTime  = DateTime.Now;
                    proxy.Host       = strs[1];
                    proxy.Port       = strs[2];
                    proxy.Serve      = strs[3];
                    proxy.IsHide     = strs[4];
                    proxy.HttpType   = videoElement.GetValue();
                    results.Add(proxy);
                    name = "";
                    j++;
                }
                else
                {
                    if (i % (3 + j * 5) == 0)
                    {
                        name = name + ":" + videoElement.XPath("a").GetValue();
                    }
                    else
                    {
                        name = name + ":" + videoElement.GetValue();
                    }
                }

                i++;
            }

            //  以自定义KEY存入page对象中供Pipeline调用
            page.AddResultItem("IpProxyResult", results);

            //  解析需要采集的URL
            foreach (var url in page.Selectable.SelectList(Selectors.XPath("//*[@id='body']/div[2]/a[position()<3]")).Links().Nodes())
            {
                page.AddTargetRequest(new Request(url.GetValue(), null));
            }
        }
示例#3
0
 public RequestResultDto AddIpProxy(IpProxy model)
 {
     try
     {
         if (_ipProxyDao.GetIpProxy(model.Host) == null)
         {
             _ipProxyDao.AddIpProxy(model);
             _result.Ret = 0;
             _result.Msg = "添加成功";
             return(_result);
         }
     }
     catch (Exception e)
     {
         _result.Msg = e.Message;
     }
     return(_result);
 }