html - Node.js 使用请求模块进行抓取

标签 html node.js web web-scraping

我想从网络获取 html。但它显示的是这样的。

meta http-equiv=refresh content="0;url=http://www.skku.edu/errSkkuPage.jsp">

但是当我使用https://www.naver.com/时而不是https://www.skku.edu/skku/index.do ,效果很好。

我想知道原因。

这是我的代码。

var request = require('request');

const url = "https://www.skku.edu/skku/index.do";

request(url, function(error, response, body){
  if (error) throw error;
  console.log(body);
});

最佳答案

网站阻止来自编程脚本检查请求 header 中的用户代理的请求。 传递网络浏览器(例如:Google chrome)发送的用户代理,它应该可以工作。

var request = require('request');
var options = {
    'method': 'GET',
    'url': 'https://www.skku.edu/skku/index.do',
    'headers': {
    'User-Agent': ' Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36'
 }
};
request(options, function (error, response) {
    if (error) throw new Error(error);
    console.log(response.body);
});

关于html - Node.js 使用请求模块进行抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59670502/

相关文章:

mysql - &符号不适用于 Sequelize 查询

javascript - 在 chrome 上使用 Javascript getElementsByTagName 时遇到问题

javascript - 管理外部 css 和 javascript 依赖项的专业方法

javascript - JS/JQuery 的新手尝试获取表行的 ID 并改为获取 "undefined"

node.js - 解析树结果/获取子树

通过webkit-devtools-agent调试node.js,如何查看堆中对象的内容?

php - 我不应该在这个应用程序中使用 CakePHP 或 MVC 吗?

html - 带有 block 引号的 html 中的 NSAttributedString

css - 调整上方文本大小时如何防止移动文本?

html - 如何停止图层之间的混合?