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 
  • 相关阅读:
    SQL Server XML数据解析
    c# XML和实体类之间相互转换(序列化和反序列化)
    C#解析XML详解(XPath以及带命名空间NameSpace)
    Jquery实现按钮点击遮罩加载,处理完后恢复
    jquery控制div随滚动条滚动效果
    asp.net中利用Jquery+Ajax+Json实现无刷新分页(二)
    easyUI tree点击文字展开节点
    201805牛客模拟考
    策略模式
    非线程安全演变成线程安全---原子性与加锁机制
  • 原文地址:https://www.cnblogs.com/jacd/p/1810286.html
Copyright © 2011-2022 走看看