運用 HttpWebRequest 來 GET 網路資源,解析後匯出成文字檔

另一篇是解析 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);

測試結果

 

 

新人發文,文章敘述如有錯誤及觀念不正確,請不吝嗇指教,感謝~