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

 

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

 

ExpandedBlockStart.gif 代码
        #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  

 

 

转载于:https://www.cnblogs.com/jacd/archive/2010/08/27/1810286.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值