zoukankan      html  css  js  c++  java
  • 抓取网页扒图片相对路径改绝对路径

    呵呵,抓取网页扒链接和图片的时候,总有些路径是写的相对路径,比如../之类的,我写了一个函数解决点问题,但不能全部解决,哪位大侠有兴趣有指点一下么

    代码
           #region A标签相对路径改绝对路径
            
    private static void AHrefFilter(ref string content, string Url, ref string MatchPattern)
            {
                
    //A标签相对路径改绝对路径
                MatchPattern = @"\bhref=[^:^;^#^+^>]*?>";
                MatchCollection mcAhref 
    = Regex.Matches(content, MatchPattern, RegexOptions.IgnoreCase); 
                
    foreach (Match m in mcAhref)
                {
                    
    string hrefStr = m.Value.Replace("href""").Replace("HREF""").Substring(1);
                    
    string hrefStrTrim = hrefStr;
                    
    if (!hrefStr.Contains("http"&& hrefStr.StartsWith("\"/"))
                    {
                        
    string urlagain = Regex.Match(Url, "http://([^/]*?/)").Value.Trim();
                        hrefStr 
    = "\"" + urlagain.Substring(0, urlagain.Length - 1) + hrefStr.Substring(1);
                    }
                    
    if (!hrefStr.Contains("http"&& hrefStr.Contains("\"../../"))
                    {
                        hrefStr 
    = hrefStr.Replace("http://www.cnblogs.com/""");
                        hrefStr 
    = "\"" + Regex.Match(Url, "http://([^/]*?/){2}").Value.Trim() + hrefStr.Substring(1);
                    }
                    
    if (!hrefStr.Contains("http"&& hrefStr.Contains("\"../"))
                    {
                        hrefStr 
    = hrefStr.Replace("../""");
                        hrefStr 
    = "\"" + Regex.Match(Url, "http://([^/]*?/){3}").Value.Trim() + hrefStr.Substring(1);
                    }
                    
    if (!hrefStr.Contains("http"&& !hrefStr.StartsWith("\"/"))
                    {
                        hrefStr 
    = "\"" + Regex.Match(Url, "http://([^/]*?/){4}").Value.Trim() + hrefStr.Substring(1);
                    }
                    
    string newHrefStr = "href=" + hrefStr + "";
                    content 
    = content.Replace(m.Value, newHrefStr); 
                }
            }
            
    #endregion 
  • 相关阅读:
    js中call,apply,bind方法的用法
    使用react脚手架初始化一个项目
    常用的CSS居中方式
    react组件之间的通信
    React脚手架less的安装
    js操作DOM的方法
    常用的ement语法
    本机系统通过SSH访问虚拟机中的Linux系统
    Java_amr格式转mp3
    linux/ubantu 安装 mysql 并且使其支持远程连接
  • 原文地址:https://www.cnblogs.com/jacd/p/1810286.html
Copyright © 2011-2022 走看看