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>
从此我只想获得日期部分。怎么办?在这个日期我不需要任何东西。每个日期这个日期都会改变,这是动态日期,所以我不能内联这个日期。从上面看出我如何得到约会。
答案 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并提取数据。