JSON的读取,页面爬取

             string strHtml = "";
string strURL= "";
        WebClient wc = new WebClient();
        wc.Encoding = Encoding.UTF8;
        strHtml = wc.DownloadString(strURL);  // 获取html内容
        JObject jo = JObject.Parse(strHtml);
        JArray jar = JArray.Parse(jo["rows"].ToString());
        JToken jt = jo["rows"];  // 获得数组
        int count = jar.Count; // 获得数组长度
        StringBuilder sb = new StringBuilder("<div>");
        sb.Append("<ul> \r");
        int index = 0;
        //遍历
        for (int i = 0; i < count; i++)
        {
            index++;
            string strNewID = jt[i]["contentId"].ToString();
            string strNewSpan = jt[i]["title"].ToString();
            string strNewDate = string.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(jt[i]["releaseTime"]));
            }
### 如何通过前端技术爬取网页并将数据保存为 JSON 文件 #### 前端爬虫基础概念 前端爬虫通常指的是利用浏览器环境中的 JavaScript 技术来抓取页面上的动态加载内容。现代网站大多采用 AJAX 或者 Fetch API 来异步获取并渲染数据,这些数据通常是 JSON 格式的。因此,在前端环境中可以直接捕获到这些请求及其响应。 #### 使用浏览器开发者工具定位目标数据 在实际操作前,可以先打开 Chrome 浏览器的开发者工具 (F12),切换至 **Network** 面板,刷新页面观察是否有返回 JSON 数据的接口被调用[^1]。一旦找到对应的 URL 和参数结构,则可以通过编程方式模拟该请求过程。 #### 利用JavaScript发起网络请求 以下是基于原生 `fetch` 函数的一个简单例子展示如何从指定URL读取JSON资源: ```javascript async function fetchData(url){ const response = await fetch(url); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } let data = await response.json(); console.log(data); // 输出解析后的对象形式的数据 } // 调用函数传入具体的API地址 fetchData('https://api.example.com/data'); ``` 此代码片段展示了基本流程:发送 GET 请求 -> 接收 Response 对象 -> 将其主体部分转化为JS可用的对象[](^2]). #### 将提取的数据存储为本地JSON文件 由于安全策略限制,纯HTML/JS项目无法直接创建物理磁盘上的文件;但是我们能够借助Blob和a标签下载功能实现近似效果: ```javascript function downloadObjectAsJson(exportObj,filename){ var dataStr="data:text/json;charset=utf-8,"+encodeURIComponent(JSON.stringify(exportObj)); var downloadAnchorNode=document.createElement('a'); downloadAnchorNode.setAttribute("href", dataStr ); downloadAnchorNode.setAttribute("download", filename+".json"); document.body.appendChild(downloadAnchorNode); // required for firefox downloadAnchorNode.click(); downloadAnchorNode.remove(); } let sampleData={"name":"John Doe","age":30}; downloadObjectAsJson(sampleData,'personInfo'); ``` 上述脚本定义了一个辅助方法用于触发用户界面级别的文件保存动作[^3]. 综上所述,虽然传统意义上的“爬虫”更多指代服务器端行为,但在特定场景下合理运用客户端脚本同样能达到目的——即自动化收集公开可访问的信息,并妥善处理结果以便进一步分析或分享[^4].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值