[爬虫学习笔记]Url过滤模块UrlFilter

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[爬虫学习笔记]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;
        }

    }
}

以上是关于[爬虫学习笔记]Url过滤模块UrlFilter的主要内容,如果未能解决你的问题,请参考以下文章

nutch如何修改regex-urlfilter.txt爬取符合条件的链接

静觅爬虫学习笔记2-urllib库的基本使用

网络爬虫作业代码代写代实现代做爬虫程序

python学习笔记--有道翻译爬虫

Python爬虫笔记(二)requests模块get,post,代理

简单爬虫学习记录