私はHtml Agility Packを使用しており、次のHTMLコードからリンクとリンクテキストを抽出しようとしています。 Webページは、リモートページから取得され、全体としてローカルに保存されます。その後、このローカルWebページからリンクとリンクテキストを抽出しようとしています。ウェブページには他のリンクテキストなどのHTMLコードが当然含まれていますが、わかりやすくするためにここでは削除されています。Html Agility Packを使用してWebページからリンク、テキスト、タイムスタンプを抽出する方法
<span class="Subject2"><a href="/some/today.nsf/0/EC8A39D274864X5BC125798B0029E305?open">
Description 1 text here</span> <span class="time">2012-01-20 08:35</span></a><br>
<span class="Subject2"><a href="/some/today.nsf/0/EC8A39XXXX264X5BC125798B0029E312?open">
Description 2 text here</span> <span class="time">2012-01-20 09:35</span></a><br>
しかし、上記のリンクとリンクテキストを抽出しようとするときに最もユニークなコンテンツです。
var linksOnPage = from lnks in document.DocumentNode.SelectNodes("//span[starts-with(@class, 'Subject2')]")
(lnks.Name == "a" &&
lnks.Attributes["href"] != null &&
lnks.InnerText.Trim().Length > 0)
select new
{
Url = lnks.Attributes["href"].Value,
Text = lnks.InnerText
Time = lnks. Attributes["time"].Value
};
foreach (var link in linksOnPage)
{
// Loop through.
Response.Write("<link>" + link.Url + "</link>");
Response.Write("<title>" + link.Text + "</title>");
Response.Write("<pubDate>" + link.Time + "</pubDate>");
}
とそのが働いていない、私は取得しています何もない:
これは私が結果
<link>/some/today.nsf/0/EC8A39D274864X5BC125798B0029E305</link>
<title>Description 1 text here</title>
<pubDate>Wed, 20 Jan 2012 07:35:00 +0100</pubDate>
<link>/some/today.nsf/0/ EC8A39XXXX264X5BC125798B0029E312</link>
<title>Description 2 text here</title>
<pubDate> Wed, 20 Jan 2012 08:35:00 +0100</pubDate>
これは、これまでの私のコードであると見てみたいものです。
ご意見やご協力をいただければ幸いです。
ありがとうございます。
更新:これは、URLやテキストとうまくリンクを選択
var linksOnPage = from lnks in document.DocumentNode.SelectNodes("//span[@class='Subject2']//a")
:次のコードで:私は、上記の例からのリンクを選択するために、今、正しい構文を取得するために管理しているしかし、どうすればタイムスタンプも手に入れられますか?ある
、このうちタイムスタンプを選択します。
<span class="time">2012-01-20 09:35</span></a>
各リンクに続きます。上記のように出力ループ内の各リンクでその出力を持っていますか?これに関する助けをありがとう。
:
はこのような何かを出力します例: 次のコードで :document.DocumentNode.SelectNodesでlnks( "//スパン[クラス@ = 'Subject2'] // A")から するvar linksOnPage = このURLとテキストでうまくリンクを選択しますが、タイムスタンプを取得するにはどうすればいいですか? つまり、タイムスタンプは 2012-01-20 09:35 の順に選択してください。上記のように出力ループ内の各リンクでその出力を持っていますか? これに関するお手伝いをありがとうございます。 – lars
今後、質問を編集して情報を追加または変更することができ、質問が変更されたことを人々は知ることができます。私は今度あなたのためにやったことがありますが、人々に答えてもらうためにあなたの質問をきれいにすることができます:) – Ktash
okありがとうは分かりませんでした。将来はできますか? – lars