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

相关推荐
weixin_4604435610 小时前
2026年新修订《网络安全法》实施:Java私有化考试系统如何做好SBOM、漏洞治理与安全升级?
java·开发语言·在线考试系统·企业培训考试系统·宏远培训考试系统·国企培训考试系统·国产化培训系统
子兮曰10 小时前
把 649 种文件格式塞进一个网页里:一个「文件不出浏览器」的预览器
前端·javascript·后端
Cc.Y13 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
paopaokaka_luck13 小时前
基于springboot+vue的智慧家政管理系统(AI问答、 WebSocket实时沟通、ECharts运营分析、订单规则与服务追踪)
java·javascript·spring boot·数据分析·echarts·mybatis
阿森_dev13 小时前
2027 届毕设选题怎么选:30 个 Java 方向选题的实现难度排序
java·开发语言·spring boot·毕业设计·课程设计
by2099913 小时前
C++ 多态:同一个基类接口,调用不同的函数
开发语言·c++·经验分享·多态
笔墨登场说说13 小时前
flink bin/start-cluster.sh 帮我做成开机启动
开发语言·python
Sarvartha13 小时前
Lambda 表达式和函数式接口
java·开发语言
小白学大数据14 小时前
拼多多反爬对抗实战:Scrapy 中间件化采集架构解析
开发语言·scrapy·中间件·架构
深蓝电商API14 小时前
HTTP/2 协议逆向:从 Fiddler 抓不到包说起
爬虫·网络协议·http·fiddler