【问题标题】:How to get URL information in C# variable?如何在 C# 变量中获取 URL 信息?
【发布时间】:2010-08-02 09:04:01
【问题描述】:
http://www.dsebd.org/latest_PE.php

上面的url包含了几个信息。从这个url我只想得到下面的信息。怎么做?

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);

之后要做什么?我什么都猜不到。请显示一些语法

  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>

从此我只想获取日期部分。如何?没有这个日期我不需要任何东西。这个日期每天都会改变,它是动态日期,所以我不能内联这个日期。从上面说我是如何得到日期的。

【问题讨论】:

  • 你用的是php还是asp.net?

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


【解决方案1】:

看看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,HTML Agility Pack 很不错,我在几个项目中都用过
  • 我用这个包但是我不能解决这个问题,看到上面的代码后,请告诉你要做什么?提前谢谢
  • @shamim - 查看网站上的示例。你需要使用xpath来获取你感兴趣的节点。
  • 你给的网站展示了如何从[@href,超链接中获取数据。我告诉过我是这个包的新手,请你给我一些语法。
  • @shamim - 那就努力吧。我不会为你做你所有的工作。作为一名程序员,我总是努力学习,而不是简单地使用东西而不理解它们。
【解决方案2】:

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

【讨论】:

  • 我是 Html Agility Pack 的新手,我不知道这个包的正确用法。看到上面的代码后,请你帮我解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-22
  • 1970-01-01
  • 2012-06-17
  • 2011-12-06
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多