2012-05-09 30 views
0

林驗證碼:我試圖從網站解析所有鏈接,但它不起作用可能是錯誤的?使用

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Net; 
using System.IO; 
using System.Text.RegularExpressions; 
using HtmlAgilityPack; 

namespace HtmlParser 
{ 
    public partial class Form1 : Form 
    { 

     // The HtmlWeb class is a utility class to get the HTML over HTTP 
     HtmlWeb htmlWeb = new HtmlWeb(); 

     // Creates an HtmlDocument object from an URL 
     HtmlAgilityPack.HtmlDocument document; 

     // Targets a specific node 
     HtmlNode someNode; 

     public Form1() 
     { 
      InitializeComponent(); 
      document = htmlWeb.Load("http://www.walla.co.il"); 
      someNode = document.GetElementbyId("mynode"); 

      // If there is no node with that Id, someNode will be null 
      if (someNode != null) 
      { 
       // Extracts all links within that node 
       IEnumerable<HtmlNode> allLinks = someNode.Descendants("a"); 

       // Outputs the href for external links 
       foreach (HtmlNode link in allLinks) 
       { 
        // Checks whether the link contains an HREF attribute 
        if (link.Attributes.Contains("href")) 
        { 
         // Simple check: if the href begins with "http://", prints it out 
         if (link.Attributes["href"].Value.StartsWith("http://")) 
          richTextBox1.Text = link.Attributes["href"].Value.ToString(); 
        } 
       } 
      } 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 

     } 


    } 
} 

但它從來沒有過線:如果我不是不使用源可用 :

someNode = document.GetElementbyId("mynode"); 

用在該行斷點和它給我留言一個斷點沒有發生程序運行,但我沒有得到任何錯誤,但它也不起作用。

我應該怎麼辦?我不明白,我應該放在那裏,而不是「我的節點」的

回答

2

的probem正試圖用正則表達式來解析HTML。

錯誤的具體原因是,你有一個不應該存在一個?和換行符,這將導致正則表達式是無效的。

您可以通過使用HtmlAgilityPack而不是修復它。

+0

你能告訴我請如何解決/修復它不首先使用AgilityPack?謝謝。 – user1363119

+0

@ user1363119:您可以刪除虛假問號和新線正如我所說的,但我建議你先檢查一下這個[示例](http://htmlagilitypack.codeplex.com/wikipage?title=Examples)看到多麼容易是開始使用HtmlAgilityPack。 –

+0

使用HtmlAgilityPack編輯我的問題,我不明白它很好,我猜。 – user1363119

相關問題