目的是獲取當當網的html文件內容,我們借助axios這個庫發起http的get請求。
安裝庫: npm install axios
//axios是用於發起http請求的庫
const axios = require('axios');
// 要訪問的目標**
const targeturl = "";
axios.get(targeturl)
.then(function (response) )
.catch(function (error) );
從執行結果可以看出,成功抓取了html文件的內容。但是存在中文亂碼的情況,這種情況一般是編碼不一致問題。axios編碼預設是utf8
,那麼我們只需要確定當當網的編碼即可。
使用chrome瀏覽器開啟當當網,在network中任意選中一條請求資源,可以檢視到響應的頭資訊。如下響應頭資訊中編碼為gbk
。中文亂碼就確認了是編碼不一致的原因。
既然兩者編碼不一致,那麼解決思路就是改變其中一方的編碼。由於axios不支援gbk
,所以我們讓另一方改變,也就是網頁響應結果的編碼轉成utf8
。
設定請求的響應結果以流方式返回,需要設定responsetype
。
借助iconv-lite這個庫進行編碼轉換。
安裝庫: iconv-lite
//
const axios = require('axios');
const iconv = require('iconv-lite');
// 要訪問的目標**
const targeturl = "";
//不斷讀取流資料並放入陣列中,直到全部讀取完就將陣列中的資料轉換為utf8編碼的字串
axios.get(targeturl, )
.then(function (response) );
//'end'沒有更多的資料可讀時觸發
response.data.on('end', function () )
}).catch(function (error) );
SQL Server 訪問傳送Http請求
通用讀取獲取資料儲存過程 開啟sql server 通訊配置 sp configure show advanced options 1 goreconfigure gosp configure ole automation procedures 1 goreconfigure goexec sp c...
網頁http請求的整個過程
這是這兩天面試的時候的一道面試題,當時答得不好,現在總結了一下。一次完整的 http 請求包括一下幾個步驟 這僅是個人的理解 dns解析 tcp 連線 瀏覽器傳送http請求 伺服器響應請求 瀏覽器解析html檔案 瀏覽器布局渲染 1.dns網域名稱解析。1 首先會在瀏覽器dns快取中搜尋是否有對應...
http 請求型別 HTTP 教程1
軟體 簡介http協議 hypertext transfer protocol,超文字傳輸協議 是網際網路上應用最為廣泛的一種網路傳輸協議,所有的www檔案都必須遵守這個標準。http是乙個基於tcp ip通訊協議來傳遞資料 html 檔案,檔案,查詢結果等 http協議是hyper text tr...