我正在使用请求nodejs模块获取网站的html,但不适用于某个重定向网站,如下所示:
var request = require('request');
var options = {
url: "http://www.amwasia.com",
headers: {'user-agent': 'node.js'},
rejectUnauthorized: false,
followAllRedirects: true
};
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log("body>>>>>>"+body)
} else {
console.log("error>>>>>>>>>" + error);
console.log("response statusCode>>>>>>>>>" + response.statusCode);
console.log("response body>>>>>>>>>" + response.body);
}
});
这给了我这个输出
体>>>>>>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta HTTP-EQUIV="REFRESH" content="0; url=http://www.amwmotors.com/">
</head>
<body>
</body>
</html>
这不是准确的HTML。
此网站正在重定向到此页面http://www.amwmotors.com/
我的另一个例子是网站:http://www.pmat.or.th并重定向到页面http://www.pmat.or.th/main/
也没有给出正确的输出。
我也试过在选项中没有 followAllRedirects:true 。
请帮帮忙?
答案 0 :(得分:1)
如果您可以将body
var记录在:
if (!error && response.statusCode == 200) {
console.log("body>>>>>>"+body)
}
,这是因为您收到的是200
状态代码,而不是重定向。如果您通过浏览器测试了网址www.amwasia.com
并被重定向,则通过html <meta>
标记完成:
<meta HTTP-EQUIV="REFRESH" content="0; url=http://www.amwmotors.com/">
通过请求模块,您似乎获得了200
,而不是3xx
。