如何在C#变量中获取URL信息?

时间:2010-08-02 09:04:02

标签: asp.net html html-parsing html-helper

http://www.dsebd.org/latest_PE.php

上面的网址包含多个信息。从这个网址我只想获得以下信息。如何?

Price Earning Ratio : at a glance
on Aug 2, 2010 at 11:28:00

我想知道如何将 url 信息放入C#中的变量或某个存储容器中。具体我需要上述信息,我不需要其他信息。 我使用下面的语法:

WebClient objWebClient = new WebClient();

aRequestHTML = objWebClient.DownloadData("http://www.dsebd.org/latest_PE.php");//http://www.dsebd.org/latest_PE_all2_08.php
UTF8Encoding utf8 = new UTF8Encoding();
myString = utf8.GetString(aRequestHTML);
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(myString);

之后该怎么办?我猜不出任何东西.Plz显示一些语法

  foreach (HtmlNode node in doc.DocumentNode.SelectNodes(@"//td"))//td[text()="Price Earning Ratio : at a glance"
            {
                if (node.InnerHtml.Contains("Price Earning Ratio"))
                {
                    //I get the td value

                }
                //[text()=Price Earning Ratio : at a glance
                // do stuff with node   //@"//td[text()=Price Earning Ratio : at a glance"
            }

添加上述语法后,我得到了下面的提示

<br>
      <font color="#FFFFFF" size="3" face="Arial"><b>Price Earning Ratio : at 
      a glance <b> </b></b></font><br>
    <font color="#FFFFFF" size="2" face="Arial"><b> on Aug 2, 2010  at 17:04:00<b></b></b></font>
    <br>

从此我只想获得日期部分。怎么办?在这个日期我不需要任何东西。每个日期这个日期都会改变,这是动态日期,所以我不能内联这个日期。从上面看出我如何得到约会。

2 个答案:

答案 0 :(得分:4)

查看HTML Agility Pack - 它是一个HTML解析器,允许您传入一个将解析的URL,以便您可以使用XPath进行查询。

HtmlWeb hw = new HtmlWeb();
HtmlDocument doc = hw.Load("http://www.dsebd.org/latest_PE.php");

此时doc可以查询并查看:

foreach(HtmlNode node in doc.DocumentNode.SelectNodes("XPATH for interesting nodes"))
{
  // do stuff with node
}

答案 1 :(得分:0)

如果要从上面的URL下载内容,可以使用WebClient(标准c#类进行http请求)进行http调用,然后Html Agility Pack解析html并提取数据。