C# 如何检索网站中标签的值?

C# 如何检索网站中标签的值?,c#,regex,web,C#,Regex,Web,我想从网站中提取标签值。我查看了Chrome中的html源代码,发现行: <strong><span id="lbName">George</span></strong> 有一个图书馆。用那个。我要补充的是,如果您一直在看同一个页面,并且您知道该页面不会改变其格式,那么您可以简单地使用IndexOf方法并搜索。比如: const string searchFor = "<span id=\"lbName\">"; // open ma

我想从网站中提取标签值。我查看了Chrome中的html源代码,发现行:

<strong><span id="lbName">George</span></strong>
有一个图书馆。用那个。我要补充的是,如果您一直在看同一个页面,并且您知道该页面不会改变其格式,那么您可以简单地使用
IndexOf
方法并搜索
。比如:

const string searchFor = "<span id=\"lbName\">"; // open marker
const string endSearchFor = "</span>"; // close marker

string result = "letters" + searchFor + "text" + endSearchFor; // Sample text, here put your text

int ix1 = result.IndexOf(searchFor);
if (ix1 == -1)
{
    throw new Exception();
}

ix1 += searchFor.Length;

int ix2 = result.IndexOf(endSearchFor, ix1);
if (ix2 == -1)
{
    throw new Exception();
}

string text = result.Substring(ix1, ix2 - ix1);
const string searchFor=”“;//开放式标记
常量字符串endSearchFor=”“;//闭合标记
string result=“letters”+searchFor+“text”+endSearchFor;//示例文本,在这里放置您的文本
int ix1=result.IndexOf(searchFor);
如果(ix1==-1)
{
抛出新异常();
}
ix1+=搜索.Length;
int ix2=result.IndexOf(endSearchFor,ix1);
如果(ix2==-1)
{
抛出新异常();
}
string text=result.Substring(ix1,ix2-ix1);
有一个库。用那个。我要补充的是,如果您一直在看同一个页面,并且您知道该页面不会改变其格式,那么您可以简单地使用
IndexOf
方法并搜索
。比如:

const string searchFor = "<span id=\"lbName\">"; // open marker
const string endSearchFor = "</span>"; // close marker

string result = "letters" + searchFor + "text" + endSearchFor; // Sample text, here put your text

int ix1 = result.IndexOf(searchFor);
if (ix1 == -1)
{
    throw new Exception();
}

ix1 += searchFor.Length;

int ix2 = result.IndexOf(endSearchFor, ix1);
if (ix2 == -1)
{
    throw new Exception();
}

string text = result.Substring(ix1, ix2 - ix1);
const string searchFor=”“;//开放式标记
常量字符串endSearchFor=”“;//闭合标记
string result=“letters”+searchFor+“text”+endSearchFor;//示例文本,在这里放置您的文本
int ix1=result.IndexOf(searchFor);
如果(ix1==-1)
{
抛出新异常();
}
ix1+=搜索.Length;
int ix2=result.IndexOf(endSearchFor,ix1);
如果(ix2==-1)
{
抛出新异常();
}
string text=result.Substring(ix1,ix2-ix1);

以下正则表达式应该可以工作:

[^<strong><span id="lbName">].*(?=</span><s/trong>)
[^].*(=)

以下正则表达式应该可以工作:

[^<strong><span id="lbName">].*(?=</span><s/trong>)
[^].*(=)

比RegEx更重要的是,我认为这应该用DOM解析器来完成,比如Agility Pack。比RegEx更重要的是,我认为这应该用DOM解析器来完成,比如Agility Pack。谢谢。在这个例子中,我知道页面结构不会改变。但我肯定也会研究Html Agility Pack。永远不要抛出纯异常,使用它的派生类,并在构造函数中传递一些文本,这样就很容易理解发生了什么happened@Davide当我写一个20行的例子时,我想扔什么就扔什么。在RL中,可能我不会抛出任何东西,我会以其他方式处理错误。考虑<代码>抛出>代码>作为错误处理的占位符。作为补充说明,我将补充说,我编写的代码可以被写为(相当简单)正则表达式,但我仍然不希望在它失败的时候使用RX BasaUE,ReGEX您没有任何要调试的。谢谢。在这个例子中,我知道页面结构不会改变。但我肯定也会研究Html Agility Pack。永远不要抛出纯异常,使用它的派生类,并在构造函数中传递一些文本,这样就很容易理解发生了什么happened@Davide当我写一个20行的例子时,我想扔什么就扔什么。在RL中,可能我不会抛出任何东西,我会以其他方式处理错误。考虑<代码>抛出>代码>作为错误处理的占位符。作为补充说明,我将补充说,我编写的代码可以被写为(相当简单)正则表达式,但我仍然不希望在它失败的时候使用RX BasaUE,ReGEX没有任何要调试的东西。