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的内容。

相关推荐
乌索普-1 分钟前
基于vue2的简易购物车
开发语言·前端·javascript
走粥3 分钟前
使用indexOf查找对象结合Pinia持久化引发的问题
开发语言·前端·javascript
csbysj202019 分钟前
Python break 语句详解
开发语言
2401_8579182926 分钟前
C++中的访问者模式实战
开发语言·c++·算法
格林威28 分钟前
工业相机图像高速存储(C++版):RAID 0 NVMe SSD 阵列暴力提速,附海康实战代码!
开发语言·c++·人工智能·数码相机·计算机视觉·工业相机·堡盟相机
elseif12333 分钟前
CSP-S提高级大纲
开发语言·数据结构·c++·笔记·算法·大纲·考纲
不甜情歌37 分钟前
搞懂 Promise:告别回调嵌套,再也不怕异步代码乱成麻
前端·javascript
波特率1152001 小时前
C++中类的const与static关键字修饰函数与变量辨析
开发语言·c++·
添尹1 小时前
Go语言基础之基本数据类型
开发语言·后端·golang
2401_891655811 小时前
爬虫对抗:ZLibrary反爬机制实战分析的技术文章大纲
爬虫