• 抓取网页扒图片相对路径改绝对路径


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

    代码
           #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 
  • 相关阅读:
    handler bundle message
    php xampp xdebug phpstorm调试
    centos 5.5 安装 KVM
    结构体数组 and 结构体数组大小的内存
    char * char [ ] char string
    val text html
    PHP
    黑马程序员——java学习16(张孝祥)——反射
    黑马程序员——java学习15(毕25)——正则表达式
    黑马程序员——java学习14(毕23-24)——网络编程
  • 原文地址:https://www.cnblogs.com/jacd/p/1810286.html
Copyright © 2020-2023  润新知