我正在请求
function get() {
var headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
'Cache-Control': 'max-age=0',
'Connection': 'keep-alive',
'Cookie': cookie,
'Host': 'lms.hse.ru',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest'
}
var options = {
url: 'https://lms.hse.ru/?sl&tab=9548',
method: 'GET',
headers: headers
}
return new Promise(function (resolve, reject) {
request(options, function (err, response, body) {
console.log(body);
});
})
}
控制台输出如下:
Y�w��v�l�W[y���Ěn���H�����`�EU�@2�̌�lT��yk˱�V��,�� �=n�4��{5�a�Z��;���~Ȯ:F��������7K`G��ض��1�T�$*`a�bZ~���bhn�hٷEW�Sݞ��x�c�p�DX��cG2��r��W���M�1p% 腅�鉄�f�Iɜ������
���zj�mvP���w����eùi�n�c��i��lt�歉�����0)\Lι�@��#��n�Fж��#
����2z.OB�3����O�=����bdb`�s���a
��gkÈ&.ӿXzYñmv@��f��-q�g�&�Ŧy���5XZ
�=������Y2���Ti����i��x\
�6~�'8��k��ט�:���GT4�fþ�U���1J���&
� �����&��O��:v0L�)��A�^
O��I�J�LH=��Z�g8^hʂCO�r��N���8���bmUEߵ|�$��D(��@�1��
r�:x}��糚QJ���|j3KUL����
�`��Zʍ���PmR��0���]����5�Eį0ǫ,o�����W����^�Y ՜U
Q�;�ľ�-�]뷢[}��,��??1E�ݹ*K*��U�m��ڻk����-�3
e3*���X��_x#�1�mߎJ���m8�h�.����)��m�b���M٦�zf���G������T�pEa� �
ɓ�l��1��V�Dt�'�9]VJ�Yo���K����Rd%�u�=�N4�Z��i,�;��m�%`����k!����w�u�~� 7
�D��l���c�>�u2p���E��~�$V^���Q�_&��2S�zV�G�kܑk�mZ��1Ӳ��]d��%�[^a!���|\�I��"Sd�ʫ`��p�vv��~�u?�J����7�h�F�~�{9=���a*H�`x��������22;)���31�N
在邮递员中,相同的响应看起来是这样的:
<!DOCTYPE HTML>
<html>
<head>
<title>LMS HSE</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<!--[if lte IE 8]><script src="css/ie/html5shiv.js"></script><![endif]-->
<script src="js/jquery.min.js"></script>
<script src="js/jquery.scrolly.min.js"></script>
<script src="js/skel.min.js"></script>
<script src="js/init.js"></script>
<script type="text/javascript" src="js/jquery.fileDownload.js"></script>
<noscript>
<link rel="stylesheet" href="css/skel.css" />
<link rel="stylesheet" href="css/style.css?v=1" />
<link rel="stylesheet" href="css/style-desktop.css" />
</noscript>
<link rel="icon" type="image/x-icon" href="favicon.ico" />
<!--[if lte IE 8]><link rel="stylesheet" href="css/ie/v8.css" /><![endif]-->
<!--[if lte IE 9]><link rel="stylesheet" href="css/ie/v9.css" /><![endif]-->
<style type="text/css">
/*
table {
width: 80%;
margin: auto;
}
*/
td {
text-align:left;
border-bottom: dotted 1px;
padding: 6px;
} ...
如何在nodejs中对其进行解码?
Lorem Ipsum只是印刷和排版行业的伪文本。自1500年代以来,Lorem Ipsum一直是行业的标准伪文本,当时一位不知名的打印机拿起一个厨房,将其打乱成一本样本书。它不仅生存了五个世纪,而且在电子排版方面也取得了飞跃,但基本上没有改变。它在1960年代开始流行,发布了包含Lorem Ipsum段落的Letraset表格,最近又发布了包括Alres PageMaker在内的桌面发行软件,包括Lorem Ipsum的版本。
我们为什么用它?
早已确定的事实是,在查看页面布局时,读者会被页面的可读内容分散注意力。使用Lorem Ipsum的要点是,它具有大致正态分布的字母分布,而不是使用“这里的内容,这里的内容”,使其看起来像可读的英语。现在,许多桌面发布程序包和网页编辑器都使用Lorem Ipsum作为其默认模型文本,并且搜索“ lorem ipsum”将发现许多仍处于起步阶段的网站。这些年来,各种版本都有所发展,有时是偶然的,有时是故意的(注入幽默等等)。
最佳答案
标头中包含接受gzip, deflate, br
的内容,但您并未告知请求您gzip:true
,因此它不会解压缩响应。
编辑更准确
var options = {
url: 'https://lms.hse.ru/?sl&tab=9548',
method: 'GET',
headers: headers,
gzip: true
}
这是假设您正在使用https://www.npmjs.com/package/request的可能性最大。
关于javascript - 如何使用Node.js解码HTML页面?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52190089/