zoukankan      html  css  js  c++  java
  • [爬虫学习笔记]Url过滤模块UrlFilter

            Url Filter则是对提取出来的URL再进行一次筛选。不同的应用筛选的标准是不一样的,比如对于baidu/google的搜索,一般不进行筛选,但是对于垂直搜索或者定向抓取的应用,那么它可能只需要满足某个条件的url,比如不需要图片的url,比如只需要某个特定网站的url等等。Url Filter是一个和应用密切相关的模块。

    using System;
    using System.Collections.Generic;
    using Crawler.Common;
    
    namespace Crawler.Processing
    {
        public class UrlFilter
        {
            public static List<Uri> RemoveByRegex(List<Uri> uris, params string[] regexs)
            {
                var uriList=new List<Uri>(uris);
                for (var i = 0; i < uriList.Count; i++)
                {
                    foreach (var r in regexs)
                    {
                        if (!RegexHelper.IsMatch(uriList[i].ToString(), r)) continue;
                        uris.RemoveAt(i);
                        i--;
                    }
                }
                return uriList;
            }
    
            public static List<Uri> SelectByRegex(List<Uri> uris, params string[] regexs)
            {
                var uriList = new List<Uri>();
                foreach (var t in uris)
                    foreach (var r in regexs)
                        if (RegexHelper.IsMatch(t.ToString(), r))
                            if(!uriList.Contains(t))
                                uriList.Add(t);
                return uriList;
            }
    
        }
    }
  • 相关阅读:
    linux内核之情景分析mmap操作
    linux内核情景分析之匿名管道
    linux内核情景分析之命名管道
    linux内核情景分析之信号实现
    Linux内核情景分析之消息队列
    linux2.4内核调度
    聊聊程序的配置文件
    汽车引擎是怎么工作的
    Go对OO的选择
    为而不争
  • 原文地址:https://www.cnblogs.com/WayneShao/p/5910620.html
Copyright © 2011-2022 走看看