C# 正则表达式抓取网页上某个标签的内容,并替换链接地址和图片地址

     #region 获取第三方网站内容


      //获取其他网站网页内容的关键代码
      WebRequest request = WebRequest.Create(第三方的网站地址);
      WebResponse response = request.GetResponse();
      StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312"));
      //reader.ReadToEnd() 表示取得网页的源码
      string Code = reader.ReadToEnd();




      HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
      document.LoadHtml(Code);


      #region 处理链接地址


      HtmlNodeCollection nodes = document.DocumentNode.SelectNodes(@"//a");
      if (nodes != null)
      {
        string strSrc = string.Empty;
        foreach (var Item in nodes)
        {


          string strUrl = Item.GetAttributeValue("href", "");
          if (!string.IsNullOrEmpty(strUrl) && strUrl != "#" && strUrl.Contains(".."))
          {
            strUrl = "原网站的链接" + strUrl.Substring(2);
          }
          else if (!string.IsNullOrEmpty(strUrl) && strUrl != "#" && !strUrl.Contains(".."))
          {
            strUrl = "原网站的链接" + strUrl;
          }


          Item.SetAttributeValue("href", "#");
          Item.SetAttributeValue("class", "ininfo");
          Item.SetAttributeValue("data-url", strUrl);
          //Item.SetAttributeValue("data-original", strSrc);
        }
      }


      #endregion


      #region 处理图片地址
      nodes = document.DocumentNode.SelectNodes(@"//img");
      if (nodes != null)
      {
        string strSrc = string.Empty;
        foreach (var Item in nodes)
        {


          string strImg = Item.GetAttributeValue("src", "");
          if (!strImg.Contains("http"))
          {
            strImg = "原网站的链接" + strImg;


            Item.SetAttributeValue("src", strImg);
          }


          Item.SetAttributeValue("style", "width:100%");
          //Item.SetAttributeValue("data-original", strSrc);
        }
      }


      #endregion




      var temp = document.DocumentNode.SelectSingleNode("//div[@class='detail']");






      ViewData["contenttext"] = temp.InnerHtml;


      #endregion
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值