编程语言
首页 > 编程语言> > C#-从网页中读取文本字符串

C#-从网页中读取文本字符串

作者:互联网

目前,我正在尝试通过c#程序从网站中读取文本.
确切地说,来自www.hardbase.fm的Track和Dj.

页面源代码如下所示:

<div id="Moderator">
  <div id="Moderator_special">
    <div style="width:158px; float:left; margin:8px"></div>
    <div id="onAir" style="width:420px;overflow:hidden;">
      <strong>
        <a href="/member/46069" target="_top">
          <span style="color:#4AA6E5">BIOCORE</span>
        </a>
        <span style="color:#26628B"> mit "This Is BIOCORE" (Hardstyle)</span>
      </strong>
    </div>
  </div>
</div>

我要读出的文字是“ BIOCORE”和“ mit” This Is BIOCORE”(Hardstyle)”
(运行代码段时看到的文本).

如果尝试过以下方法:

System.Net.WebClient wc = new System.Net.WebClient();
byte[] raw = wc.DownloadData("http://www.hardbase.fm/");
first = webData.IndexOf("#4AA6E5\">") + "#4AA6E5\">".Length;
last = webData.LastIndexOf("</span></a><span style=\"color:#26628B\">");
hb_dj = webData.Substring(first, last - first);

但这并不总是可行的,因为有时页面的源代码会有所变化.喜欢的颜色左右.然后搜索将无法工作.

所以问题是:是否有更好的方法来做到这一点?

解决方法:

您应该尝试HTML Agility Pack

HtmlWeb page = new HtmlWeb();
HtmlDocument document = page.Load("http://www.hardbase.fm/");

var nodes = document.DocumentNode.SelectNodes("//[@id='onAir']");
var nodes2 = nodes.Select(c1 => c1.SelectNodes("span")).ToList();

var span1=nodes2[0];
var span2 nodes2[1]

标签:text,webpage,html,c
来源: https://codeday.me/bug/20191120/2043565.html