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

相关推荐
Chengbei11几秒前
Chrome浏览器渗透利器支持原生扫描!JS 端点 + 敏感目录 + 原型污染自动化检测|VulnRadar
javascript·chrome·安全·web安全·网络安全·自动化·系统安全
乱世军军12 分钟前
把 Python 3.13 降级到 3.11
开发语言·python
本喵是FW12 分钟前
C语言手记2
c语言·开发语言
fy1216314 分钟前
GO 快速升级Go版本
开发语言·redis·golang
共享家952716 分钟前
Java入门(String类)
java·开发语言
0xDevNull22 分钟前
Spring Boot 循环依赖解决方案完全指南
java·开发语言·spring
bbq粉刷匠24 分钟前
Java--多线程--单例模式
java·开发语言·单例模式
dfafadfadfafa26 分钟前
嵌入式C++安全编码
开发语言·c++·算法
海边的梦27 分钟前
【无标题】
爬虫·网络爬虫
计算机安禾44 分钟前
【C语言程序设计】第34篇:文件的概念与文件指针
c语言·开发语言·数据结构·c++·算法·visual studio code·visual studio