切換
舊版
前往
大廳
主題

[C#] HtmlAgilityPack

Sadaakira_Y2 | 2020-05-20 17:01:37 | 巴幣 0 | 人氣 408

為了方便比較人中之龍 Online 中日兩版的活動順序,於是做了簡單的撈取工具。


首先來介紹一下 HtmlAgilityPack,這是個好用的 DOM 解析工具,能直接在 Nuget 上找到。


接下來是程式碼的部分,短短幾行不難理解。

>> 紅框
為目標網址,若想撈取有編號規律的大量頁面,建議每次操作間相隔 1 到 3 秒,爬的太快可能會被誤認為攻擊,想當年為了製作畢業專題,讓學校 Wifi 被 PCHome 鎖了好幾次。

>>
為網頁上目標的 DOM 路徑(應該是這樣稱呼吧),像 "/html/body/div[3]" 代表的就是 html 中的 body 中的第三個 div。

>>
根據目標類型不同,提取內容的屬性也有差,例如:innerHTML 和 outerHTML。


最後來檢驗一下成果。

>> 最新公告
直接對兩版的公告列表抓取第一筆,可以發現兩邊都有用數字編號的習慣。


>> 日版查詢
先前在網址看到的數字在此時可以拿來當成搜尋區間,在結束編號那填上數字,程式就會自動網前抓取 30 筆,如:輸入 1155 會抓 1125 - 1155 號的公告。



如果輸入數字小於 30,會將範圍設成 1 到輸入數。


>> 台版查詢
概念和日版一樣,差在跳號多所以數字比較大。



以上介紹完畢,程式原碼和執行檔載點如下。 (連結可用檢查:2022/05/30)

創作回應

相關創作

更多創作