使用 HttpWebRequest 請求頁面 URL,返回的 HTML 中不包含 AJAX 動態加載的數據,因為 AJAX 數據由瀏覽器發起的獨立異步請求獲取,並非初始頁面響應的一部分。
XHR/Fetch 類型請求,記錄其 完整 URL、HTTP 方法、Header、Body 參數。Referer、X-Requested-With: XMLHttpRequest、Cookie 等)和參數。Newtonsoft.Json 或 System.Text.Json 反序列化提取數據。var request = (HttpWebRequest)WebRequest.Create(ajaxUrl);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Headers["X-Requested-With"] = "XMLHttpRequest";
request.CookieContainer = cookies; // 若需登錄態
using (var stream = request.GetRequestStream()) {
byte[] data = Encoding.UTF8.GetBytes(postData);
stream.Write(data, 0, data.Length);
}
using (var response = (HttpWebResponse)request.GetResponse())
using (var reader = new StreamReader(response.GetResponseStream()))
{
string json = reader.ReadToEnd();
// 解析 json
}