首页 > 其他分享 >.net抓取html文本中的链接集合

.net抓取html文本中的链接集合

时间:2023-11-24 11:57:42浏览次数:33  
标签:string list 抓取 content startIndex html str net

public static void GetListHtmlString(string content, string searchStr, List<string> list)
{
if (string.IsNullOrEmpty(content) || string.IsNullOrEmpty(searchStr))
return;

int thisIndex = 0;
while (true)
{
int startIndex = content.IndexOf(searchStr, thisIndex);
if (startIndex == -1)
break;

startIndex += searchStr.Length;

int endIndex = content.IndexOf("\"", startIndex);
if (endIndex == -1)
break;

var listChar = content.Skip(startIndex).Take(endIndex - startIndex).ToArray();
string str = new string(listChar);
if (str.Contains("data:image/png;base64"))
continue;
if (/*str.ToLower().StartsWith(Aide.Domain.ToLower()) && */!list.Contains(str)) { list.Add(str); }

thisIndex = endIndex;
}
return;
}

 



 

调用:

 var html = new StreamReader("C:\\html.txt").ReadToEnd();
 var list = new List<string>();
 GetListHtmlString(db.CanceledRemark, "src=\"", list);
 GetListHtmlString(db.CanceledRemark, "href=\"", list);
 return SuccessMsg(list);

返回结果:

 

标签:string,list,抓取,content,startIndex,html,str,net
From: https://www.cnblogs.com/cheua/p/17853411.html

相关文章

  • .Net core 常见同步机制及其应用场景
    在.NETCore5中,提供了多种同步机制来处理多线程同步问题,下面分别介绍这些同步机制及其适用场景。lock关键字lock关键字是C#语言提供的一种基本的同步机制,可以用于保护临界区,确保多个线程对共享资源的访问互斥性。使用lock关键字时,需要指定一个对象作为锁,这个锁对象可......
  • log4net使用过程
    1.安装log4net,通过Nuget下载2.在AssemblyInfo.cs中添加[assembly:log4net.Config.XmlConfigurator(ConfigFile="log4net.config",ConfigFileExtension="config",Watch=true)]3.编写log4net.config,放在工程目录和exe目录<?xmlversion="1.0"?......
  • 代码雨的实现 linux or html
    文章目录1、linux代码雨的实现2、html文件实现1、linux代码雨的实现执行1)sudoapt-getinstallcmatrix2)cmatrix效果:2、html文件实现1)新建文件test.html2)复制一下代码<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>Code......
  • 基于html5+javascript技术开发的房贷利率计算器,买房的码农们戳进来
    房贷计算器是一款专为购房者设计的实用工具应用,其主要功能是帮助用户详细计算房贷的还款金额、利息以及还款计划等。通过这款软件,用户可以更加便捷地了解到自己的还款情况和计划,从而更好地规划自己的财务。下面将对房贷计算器进行详细的介绍。体验地址房贷计算器体验地址关键代码<t......
  • 平台工程时代的 Kubernetes 揭秘:2023年生产状况报告深度剖析
    Kubernetes在生产环境中的复杂性已经成为常态,在2023年这个平台工程盛行的时代,容器管理的最大亮点可能在于其灵活性,然而在运维政策和治理等方面仍然存在诸多挑战。八年过去了,在生产环境中使用Kubernetes仍然需要面临许多挑战。 SpectroCloud刚刚与DimensionalResearch合......
  • ConfigureAwait in .NET8
    ConfigureAwaitin.NET8ConfigureAwait(true)和ConfigureAwait(false)首先,让我们回顾一下原版ConfigureAwait的语义和历史,它采用了一个名为continueOnCapturedContext的布尔参数。当对任务(Task、Task<T>、ValueTask或ValueTask<T>)执行await操作时,其默认行为是捕获“上......
  • 在.net中使用AutoMapper进行对象映射,对象相互转,简单方便
    AutoMapper是一种对象映射工具,它可以帮助我们将不同类型的数据对象之间进行相互转换。在.NET中,我们可以使用AutoMapper库来简化数据对象之间的映射操作,从而提高代码的可读性和可维护性。一、AutoMapper的安装和基本使用安装AutoMapper首先,我们需要在项目中安装AutoMapper库。......
  • .net 温故知新【13】:Asp.Net Core WebAPI 缓存
    一、缓存缓存指在中间层中存储数据的行为,该行为可使后续数据检索更快。从概念上讲,缓存是一种性能优化策略和设计考虑因素。缓存可以显著提高应用性能,方法是提高不常更改(或检索成本高)的数据的就绪性。二、RFC9111在最新的缓存控制规范文件RFC9111中,详细描述了浏览器缓存和服务......
  • 掌握VB.net编程技巧,轻松打造Windows应用
    为了温故而知新,本博客旨在记录我学习VB.net编程的过程,分享基础知识和实用技巧,帮助有需要的朋友轻松入门VB.net编程。无论您是想开发Windows平台上的应用程序,还是想在.NET生态系统中展现创造力和创新精神,本文都将为您提供宝贵的指导。VB.net是一种易学易用的编程语言,它基于Microso......
  • html大体框架
    html框架<!--这一句话声明这是h5版本的--><!DOCTYPEhtml><!--这一句把lang="en"去掉要不然默认语言为英文--><htmllang="en"><head><!--声明编码格式是UTF-8--><metacharset="UTF-8"><!--设置网站的关键字:方便外部......