当前位置: 首页 > article >正文

nodejs爬虫抓取数据快速入门

在Node.js中处理来自不同来源(如CSDN、Ruuoob、Cnblogs、W3School、简书等)的网页数据,通常可以通过几种方法实现,包括使用HTTP请求库(如axios或node-fetch)来获取网页内容,然后使用HTML解析库(如cheerio或jsdom)来提取所需数据。

以下是一个使用axios和cheerio的示例步骤,演示如何从多个网站抓取数据:

1. 安装必要的npm包

首先,确保你已经安装了axios和cheerio。如果未安装,可以通过以下命令安装:

npm install axios cheerio

2. 编写代码抓取数据

以下是一个Node.js脚本示例,用于从几个不同的网站抓取数据:

const axios = require('axios');
const cheerio = require('cheerio');
 
async function fetchData(url) {
    try {
        const { data } = await axios.get(url);
        return cheerio.load(data);
    } catch (error) {
        console.error(`Error fetching ${url}:`, error);
    }
}
 
async function getDataFromCSDN() {
    const $ = await fetchData('https://blog.csdn.net/'); // 示例URL,根据需要修改
    const title = $('title').text(); // 提取标题
    console.log('CSDN Title:', title);
}
 
async function getDataFromRuuoob() {
    const $ = await fetchData('https://ruuoob.com/'); // 示例URL,根据需要修改
    const title = $('title').text(); // 提取标题
    console.log('Ruuoob Title:', title);
}
 
async function getDataFromCnblogs() {
    const $ = await fetchData('https://www.cnblogs.com/'); // 示例URL,根据需要修改
    const title = $('title').text(); // 提取标题
    console.log('Cnblogs Title:', title);
}
 
async function getDataFromW3School() {
    const $ = await fetchData('https://www.w3schools.com/'); // 示例URL,根据需要修改
    const title = $('title').text(); // 提取标题
    console.log('W3School Title:', title);
}
 
async function getDataFromJianshu() {
    const $ = await fetchData('https://www.jianshu.com/'); // 示例URL,根据需要修改
    const title = $('title').text(); // 提取标题
    console.log('Jianshu Title:', title);
}
 
// 调用函数获取数据
getDataFromCSDN();
getDataFromRuuoob();
getDataFromCnblogs();
getDataFromW3School();
getDataFromJianshu();

3. 注意事项

反爬虫机制: 一些网站可能实施了反爬虫机制(如IP封锁、用户代理检查等)。确保你的请求看起来像是正常的浏览器访问,例如设置用户代理。可以使用axios的headers属性来设置用户代理:

axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } });

遵守Robots协议: 在抓取网站数据之前,确保遵守网站的robots.txt文件规定,不要过度请求网站服务器。

法律和道德问题: 确保你的数据抓取活动符合相关法律法规和网站的条款,尊重网站的版权和数据使用政策。

通过以上步骤,你可以有效地从多个网站抓取数据。调整选择器(如$(‘title’).text()中的选择器)以匹配你想要提取的具体内容。


http://www.kler.cn/a/557496.html

相关文章:

  • RTSP场景下的RTP与RTCP
  • Spring Boot3+Vue2极速整合:10分钟搭建DeepSeek AI对话系统
  • Linux/POSIX 多路IO复用
  • RTSP协议全解析
  • jQuery AJAX 方法详解
  • Java 异常(Exception)全面解析:类型与原理
  • 【网络安全】常见的web攻击
  • AI Agent实战:打造京东广告主的超级助手 | 京东零售技术实践
  • python与pycharm如何设置文件夹为源代码根目录
  • DeepSeek掘金——SpringBoot 调用 DeepSeek API 快速实现应用开发
  • 迎接2025,立个flag
  • 图像处理:模拟色差的生成
  • Spring MVC中环境配置的实战应用
  • 自制操作系统学习第七天
  • STM32-心知天气项目
  • Python----数据结构(队列,顺序队列,链式队列,双端队列)
  • 使用PyQt5和百度AI实现图片清晰度增强的GUI应用
  • Linux下安装中文输入法总结
  • pycharm中配置PyQt6详细教程
  • qt项目配置部署