如何在网站中检索标签的值
本文关键字:标签 检索 网站 | 更新日期: 2023-09-27 18:08:05
我想从一个网站提取一个标签值。我在Chrome中查看了html源代码,发现了这行:
<strong><span id="lbName">George</span></strong>
标签名称lbName在该请求中是唯一的。但是我如何从这一行中提取"George"这个名字呢?我看了正则表达式,但到目前为止,它只是如果字符串包含一些模式或不,我已经知道它确实。
public static void GetName()
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("Http://MyWebsite.com");
myRequest.Method = "GET";
WebResponse myResponse = myRequest.GetResponse();
StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
string result = sr.ReadToEnd();
sr.Close();
myResponse.Close();
string sPattern = "lbName";
// extract the value of lbName ?
}
有一个库,Html敏捷包。使用它。我要补充一点,如果您总是在查看同一页面,并且您知道页面不会改变其格式,那么您可以简单地使用IndexOf
方法并搜索<span id="lbName">
。比如:
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);
以下正则表达式应该可以工作:
[^<strong><span id="lbName">].*(?=</span><s/trong>)