另一篇是解析 CSV,本篇將練習實做解析 Json 並匯出成文字檔,也算是練習爬蟲實作
本次練習是依想要的條件,去爬知名網站,並過濾出我們想要的公司及職缺
在設定完條件後,大約列出了每頁面25筆的資料,總共有150頁
所以先設定最外層的 for 迴圈,並載入 url
for (int i = 1; i < 150; i++)
{
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create($"https://www.104.com.tw/jobs/search/list?ro=0&kwop=7&keyword=%E8%BB%9F%E9%AB%94%E5%B7%A5%E7%A8%8B%E5%B8%AB&order=1&asc=0&page={i}&mode=s&jobsource=joblist_a_relevance&fbclid=IwAR2W4Bz0FJ6VujG3xcF-LgST8GtbqsY0SS1f5njsQs8JvWtufTcmYud7Qfg");
req.Method = "GET";
}
再將接收到內容進行解析
using (WebResponse wr = req.GetResponse())
{
//在這裡對接收到的頁面內容進行處理
using (StreamReader myStreamReader = new StreamReader(wr.GetResponseStream(), Encoding.Default))
{
// 讀頁面所有內容
string data = myStreamReader.ReadToEnd();
// 解析data中的json
JObject josn = JsonConvert.DeserializeObject<JObject>(data);
}
}
去讀取每筆資料,並進行篩選,再將過濾後的資料匯出成文字檔
// 用foreach讀出每筆資料
foreach (var job in josn["data"]["list"])
{
// 宣告一個空字串,供檔案存取時使用
string content = "";
// 設定條件,取得想要的資料
if (!job["salaryDesc"].ToString().Equals("面議") && job["jobAddrNoDesc"].ToString().Contains("高雄"))
{
content += job["custName"] + "\r\n";
content += job["salaryDesc"] + "\r\n";
content += job["periodDesc"] + "\r\n";
content += "=================================" + "\r\n";
Console.WriteLine(job["custName"]);
Console.WriteLine(job["salaryDesc"]);
Console.WriteLine(job["periodDesc"]);
// 將讀到的資料,存成記事本
File.AppendAllText(@"C:\Users\ASUS\Desktop\SearchKaoJob.txt", content);
}
}
Thread.Sleep(3000);
測試結果
新人發文,文章敘述如有錯誤及觀念不正確,請不吝嗇指教,感謝~