nodejs 爬虫 axios 异步爬虫 教程 【一】

axios 自定义headers

javascript 复制代码
axios.defaults.headers.common["User-Agent"] =

  "Googlebot/2.1 (+http://www.google.com/bot.html)";

运行环境:

node :v18

javascript 复制代码
const axios = require("axios");
axios.defaults.headers.common["User-Agent"] =
  "Googlebot/2.1 (+http://www.google.com/bot.html)";

async function crawler() {
  try {
    let task = [];
    console.log(new Date().getTime());
    console.time("run");

    for (let i = 1; i < 100; i++) {
      const url = `https://licai.cofool.com/ask/new-${i}.html`;
      const response = await axios.get(url);
      task.push(response);
    }

    const result = await Promise.all(task);
    for (let item of result) {
      ret_obj = item.data.length;
      console.log(ret_obj);
    }
    console.timeEnd("run");
    console.log(new Date().getTime());
  } catch (error) {
    console.error(error);
  }
}
for (let j = 0;; j++) {
  crawler();
}

程序不断遍历翻页url,从第一页到100页。然后是一个死循环。 要控制次数,可以在最后一行修改:

javascript 复制代码
for (let j = 0; j<100; j++) {
  crawler();
}

程序没有做解析html的功能,首先调试通过后,会输出获取的html的文档大小。

下一节课我们会带大家去解析html的内容。

相关推荐
yangyanping201085 分钟前
Vue入门到精通七之关键字const
前端·javascript·vue.js
健康平安的活着6 分钟前
java中乐观锁+事务在批量导入,批量审批案例的使用
java·开发语言
lxh011316 分钟前
重复的DNA序列
开发语言·javascript·ecmascript
froginwe1118 分钟前
Web 词汇表
开发语言
im_AMBER22 分钟前
Leetcode 139 最后一个单词的长度 | 找出字符串中第一个匹配项的下标
开发语言·算法·leetcode
2401_8898846631 分钟前
嵌入式C++测试框架
开发语言·c++·算法
1104.北光c°31 分钟前
我理解的Leaf号段模式:美团分布式ID生成系统
java·开发语言·笔记·分布式·github·leaf
DREW_Smile35 分钟前
字符函数和字符串函数2
c语言·开发语言
wjs20241 小时前
CSS 颜色
开发语言
无巧不成书02181 小时前
Java数值字面量速查表
java·开发语言·python·开发者·字面量