2009-12-15 49 views
0

我寫它利用HtmlAgilityPack庫,以刮位於頁面C#代碼:World's Largest Urban Areas (Page 2)。不幸的是,頁面包含格式不正確的內容。麻煩刮網頁格式錯誤的內容

我就如何湊這個頁面中的僵局。目前的代碼,我(下出現)凍結在解析HTML:

HtmlNodeCollection cityRecords = _htmlDocument.DocumentNode.SelectNodes("//table[@class='boldtable']//tr[position() != 1]"); 
CityNodes = (from node in cityRecords.Descendants() 
       where node.Name == "td" 
       select node).ToList(); 

的目標是分析每個與每個數據點的頁面上列出的每一個城市;而已。尋找關於如何修改上述代碼或使用另一個免費提供的庫的建議。

謝謝!

+0

你應該偏離屏幕抓取。您已經遇到問題,爲什麼它的不良做法 - 如果不是不誠實或違法。嘗試尋找一個地理/人口普查api - 那麼你所要做的就是實現一個簡單的REST客戶端。 – Skawful 2009-12-15 16:03:02

+0

感謝您輸入Skawful - 我完全同意。不過,我花了相當多的時間尋找這一點,並沒有運氣。現在看到有人在接下來的5分鐘內指出一個API :)。 我還應該補充說,這對於我學習支持技術來說更是一個練習。 – BigBrother 2009-12-15 18:49:30

回答

3

運行通過HTML整潔解析它之前的內容。

http://tidy.sourceforge.net/

+0

謝謝您的迴應。你知道是否有一個等效的.Net庫嗎?我想讓應用程序下載一個HTML頁面(不僅僅是我在我的問題中引用的那個頁面),運行Html Tidy或其他類似的程序,然後進行處理。 – BigBrother 2009-12-15 17:32:03

+0

我不知道原生一個的,但速度不是主要問題,COM互操作不宜長太困難了。 http://www.devx.com/dotnet/Article/20505/0/page/2是一個鏈接。 – 2009-12-17 19:38:43

+0

我發現一個,但我知道幾乎一無所知: http://sourceforge.net/projects/tidynet/ – 2009-12-17 19:46:27