這是半個月前幫學弟寫的程式(順便學習一下HttpParser跟Config的用法)
主要功能就是把Yahoo新聞的新聞網頁的內容給抓下來存成txt檔
如此一來要做資訊檢索或斷詞之類的研究都很方便
或許有人會說:用RSS不就好了?
我會額外寫個小程式的原因有二,一是RSS不一定能顯示很久以前的資訊,二是自訂性
自製程式的話對於格式或檔名之類的設定都可以按造自己需求
還可以過濾掉已存在的新聞...等
按此下載 (51.7kb,需要.NET Framework 2.0)
原始碼(請不要二次散布,謝謝)
順便一提,這也是我第一次使用C#而非VB寫這種小程式
使用方式:
先選擇新聞種類,再選擇讀取範圍、儲存位置
按下[開始]後,程式就會將這些頁數底下的新聞連結都一一下載到指定目錄
另外可以設定儲存的格式
這個技術上其實很簡單,主要就是下載指定的Html再讀取需要的欄位資訊
我用的是HTML Agility Pack,這是一個.NET中相當好用的HTML Parser
讀取網頁後可以直接用指定tag的方式取得網頁內容,還可以設定是否要濾掉script及tag
ComicShelf之類的線上看漫畫軟體,其實也都是用同樣的方式去取得圖片的
美中不足的是由於指定tag的方式其實是絕對路徑(比方說指定id="xxx"的tag)
所以只要網頁有變動就得重新指定
這就是一堆免空下載跟看漫畫程式必須一直更新解析器的原因
順便一提,大致上的用法是這樣,有需要可以參考看看
WebClient client = new WebClient();
using (MemoryStream ms = new MemoryStream(client.DownloadData(url)))
{
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(ms, Encoding.UTF8);
// 取得所有符合條件的nodes
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//ul[@class='yom-list-wide thumbnail']//h4//a");
foreach (HtmlNode node in nodes) {
// 中略
}
// 取得符合條件的第一個node的內部文字
string title = doc.DocumentNode.SelectSingleNode("//h1[@class='headline']").InnerText;
}
文章標籤
全站熱搜

學長超強!!!!
我也只是把套件兜一兜而已...
*****
*****
*****
這個exe真的太棒了 大大地幫助了我的專題 非常非常感謝你!! 如果大大方便 希望能附上視窗程式專案原始碼 我們會在專案成果的名單上加上作者你的大名與網址
已經附在原文上了 可以的話,請不要進行二次散布,謝謝