首页 > 编程语言 >如何在Debian上用Node.js爬虫开发

如何在Debian上用Node.js爬虫开发

来源:互联网 2026-07-28 08:09:20

在Debian上使用Node.js进行爬虫开发:通过NodeSource安装Node.js环境,创建项目目录并安装axios与cheerio库,编写代码抓取页面标题。运行后可通过循环和异步请求处理复杂场景,如分页爬取,实现多页面并发,最后用PM2后台部署以确保稳定运行。

在Debian上做爬虫开发,Node.js是个相当顺手的工具。具体怎么搭起来?下面一步步拆解,保证清晰好上手。

如何在Debian上用Node.js爬虫开发

长期稳定更新的攒劲资源: >>>点此立即查看<<<

1. 安装Node.js

先解决环境问题。Debian系统上装Node.js,推荐用NodeSource的二进制分发库,版本随你挑,这里以14.x为例。

使用NodeSource安装Node.js

  1. 添加NodeSource库:打开终端,跑下面这条命令,把14.x版本的源加进去(想换其他版本,改一下URL里的版本号就行):

    curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
  2. 安装Node.js:接着执行这条,Node.js和npm一次性搞定:

    sudo apt-get install -y nodejs
  3. 验证安装:装完检查一下,跑下面两个命令,看到版本号就说明成了:

    node -v
    npm -v

2. 创建一个新的Node.js项目

工作目录里建个新项目,名字随便起,比如叫my-crawler

mkdir my-crawler
cd my-crawler
npm init -y

npm init -y会快速生成一个默认的package.json,省得手动填一堆信息。

3. 安装爬虫相关的库

发HTTP请求用axios(或者request,不过axios更现代),解析HTML用cheerio——这两个是爬虫黄金搭档。

安装axios和cheerio

npm install axios cheerio

装完就能在项目里直接require了。

4. 编写爬虫代码

新建一个index.js,把下面这段代码贴进去。这是一个最简示例:抓取目标网页的标题并打印出来。

const axios = require('axios');
const cheerio = require('cheerio');

async function crawl(url) {
  try {
    const response = await axios.get(url);
    const html = response.data;
    const $ = cheerio.load(html);
    const title = $('title').text();
    console.log(`Title of the page: ${title}`);
  } catch (error) {
    console.error(`Error fetching the page: ${error.message}`);
  }
}

// 替换为你想要爬取的URL
crawl('https://example.com');

逻辑很直白:axios拿到页面HTML,cheerio解析DOM,然后提取</code>标签里的文本。当然,实际爬虫要处理的东西多得多,这只是个起步。</p> <h3>5. 运行爬虫</h3> <p>终端里跑下面这条命令,就能看到效果:</p> <pre class="hljs"><code>node index.js</code></pre> <p>如果一切正常,控制台会输出那个页面的标题。</p> <h3>6. 处理更复杂的爬虫任务</h3> <p>真实场景往往没这么简单,你可能需要面对下面这些情况:</p> <ul> <li><strong>分页爬取</strong>:用循环加条件判断,一页一页翻过去,直到没有下一页为止。</li> <li><strong>异步请求</strong>:用<code>Promise.all</code>或者<code>async/await</code>并行处理多个URL,能大幅提升效率。</li> <li><strong>反爬虫机制</strong>:设置合适的请求头(比如<code>User-Agent</code>)、使用袋里IP、控制请求频率(加个延时),这些是常规操作。</li> </ul> <p>每个点展开都能写一篇长文,但核心思路就这些——遇到具体问题再针对性解决。</p> <h3>7. 部署爬虫</h3> <p>要是想把爬虫长期挂在服务器上跑,可以用PM2这个进程管理工具,它能帮你自动重启、记录日志,省心不少:</p> <pre class="hljs"><code>npm install pm2 -g pm2 start index.js --name my-crawler</code></pre> <p>跑完这条命令,爬虫就在后台默默工作了,哪怕终端关了也不影响。</p> <h3>总结</h3> <p>从装Node.js到写一个能跑起来的爬虫,再到应对复杂场景和部署,以上步骤基本覆盖了Debian上用Node.js做爬虫开发的全流程。实际项目里可以根据需求灵活扩展,比如加个数据库存数据、用Puppeteer处理动态页面,但底层逻辑还是这些。动手试试,遇到坑再回来翻翻这篇文章,应该能解决大部分问题。</p> </div> <div class="mnxDqzcMsg"> <b></b> <p>侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述</p> <div class="clear"></div> </div> </div> <!-- 相关下载 取1个 --> <!-- 相关攻略 --> <div class="mnxDqzcBox"> <div class="mnxPhbTitle"> <b></b> <h2>相关攻略</h2> <em><a href="/newslist/915_1.html" title="更多"><i>更多</i><b></b></a></em> <div class="clear"></div> </div> <div class="mnxZxtjBox"> <ul class="mnxZxglList"> <li> <a href="/article/85396/" title="宁陵中学的1V4是什么梗" class="aBlack">宁陵中学的1V4是什么梗</a> <span></span> <div class="clear"></div> </li> <li> <a href="/article/85301/" title="丢雷老母是什么梗" class="aBlack">丢雷老母是什么梗</a> <span></span> <div class="clear"></div> </li> <li> <a href="/article/85095/" title="毛猴是什么梗毛猴意思出处含义介绍" class="aBlack">毛猴是什么梗毛猴意思出处含义介绍</a> <span></span> <div class="clear"></div> </li> <li> <a href="/article/52712/" title="纪湘战四郎什么意思" class="aBlack">纪湘战四郎什么意思</a> <span></span> <div class="clear"></div> </li> <li> <a href="/article/50981/" title="抖音亚太区最帅100张面孔是什么意思" class="aBlack">抖音亚太区最帅100张面孔是什么意思</a> <span></span> <div class="clear"></div> </li> <li> <a href="/article/45603/" title="孙悟空的三个锦囊是什么意思" class="aBlack">孙悟空的三个锦囊是什么意思</a> <span></span> <div class="clear"></div> </li> </ul> </div> </div> <div class="mnxDqzcBox"> <div class="mnxPhbTitle"> <b></b> <h2>同类更新</h2> <em><a href="/newslist/915_1.html" title="更多"><i>更多</i><b></b></a></em> <div class="clear"></div> </div> <ul class="mnxSplbList"> <li> <span> <a href="/article/987886/" title="高德地图导航提示偏离路线如何解决"><img src="https://img.xiayx.com/uploadfile/news/20260728/a1f7e04f20b18e7f21d0ed6f08473849.webp" alt="高德地图导航提示偏离路线如何解决" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /></a> </span> <dl> <dt><a href="/article/987886/" title="高德地图导航提示偏离路线如何解决" class="aBlack">高德地图导航提示偏离路线如何解决</a></dt> </dl> </li> <li> <span> <a href="/article/987881/" title="如何退出高德地图导航-高德地图退出导航的方法"><img src="https://img.xiayx.com/uploadfile/news/20260728/bf988ce9d66ee641c09432af06cb2e58.webp" alt="如何退出高德地图导航-高德地图退出导航的方法" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /></a> </span> <dl> <dt><a href="/article/987881/" title="如何退出高德地图导航-高德地图退出导航的方法" class="aBlack">如何退出高德地图导航-高德地图退出导航的方法</a></dt> </dl> </li> <li> <span> <a href="/article/987880/" title="高德地图导航提示错误路线如何解决"><img src="https://img.xiayx.com/uploadfile/news/20260728/dc3e3fa8c48f25d6579fc507cddb64a1.webp" alt="高德地图导航提示错误路线如何解决" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /></a> </span> <dl> <dt><a href="/article/987880/" title="高德地图导航提示错误路线如何解决" class="aBlack">高德地图导航提示错误路线如何解决</a></dt> </dl> </li> <li> <span> <a href="/article/986799/" title="迅捷录屏鼠标指针高亮教程"><img src="https://img.xiayx.com/uploadfile/news/202607276a675527a6708..jpg" alt="迅捷录屏鼠标指针高亮教程" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /></a> </span> <dl> <dt><a href="/article/986799/" title="迅捷录屏鼠标指针高亮教程" class="aBlack">迅捷录屏鼠标指针高亮教程</a></dt> </dl> </li> <li> <span> <a href="/article/986798/" title="海尔智家小优助手查找方法"><img src="https://img.xiayx.com/uploadfile/news/202607276a6754c76d3a2..jpg" alt="海尔智家小优助手查找方法" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /></a> </span> <dl> <dt><a href="/article/986798/" title="海尔智家小优助手查找方法" class="aBlack">海尔智家小优助手查找方法</a></dt> </dl> </li> <li> <span> <a href="/article/986797/" title="如何查看海尔智家语音记录"><img src="https://img.xiayx.com/uploadfile/news/202607276a6754c1a7645..jpg" alt="如何查看海尔智家语音记录" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /></a> </span> <dl> <dt><a href="/article/986797/" title="如何查看海尔智家语音记录" class="aBlack">如何查看海尔智家语音记录</a></dt> </dl> </li> <div class="clear"></div> </ul> </div> <div class="mnxDqzcBox"> <div class="mnxPhbTitle"> <b></b> <h2>热游推荐</h2> <em><a href="/sy/" title="更多"><i>更多</i><b></b></a></em> <div class="clear"></div> </div> <ul class="mnxSyyxList"> <li> <span><a href="/xiazai/902144362.html" title="DreamStudio"><img src="https://img.xiayx.com/uploadfile/info/20260630/1782787849669912.jpg" alt="DreamStudio" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /></a></span> <div class="mnxSyyxCont"> <dl> <dt><a href="/xiazai/902144362.html" title="DreamStudio" class="aBlack">DreamStudio</a></dt> <dd class="cont1">Android/ <i>|</i> <a href="/xiazai/1048_1/" title="AI绘图" class="bBlack">AI绘图</a></dd> <dd>2026-06-30</dd> </dl> <em><a href="/xiazai/902144362.html" title="下载">下载</a></em> <div class="clear"></div> </div> <div class="clear"></div> </li> <li> <span><a href="/xiazai/902144361.html" title="Pixlr"><img src="https://img.xiayx.com/uploadfile/info/20260630/1782787989689086.png" alt="Pixlr" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /></a></span> <div class="mnxSyyxCont"> <dl> <dt><a href="/xiazai/902144361.html" title="Pixlr" class="aBlack">Pixlr</a></dt> <dd class="cont1">Android/ <i>|</i> <a href="/xiazai/1048_1/" title="AI绘图" class="bBlack">AI绘图</a></dd> <dd>2026-06-30</dd> </dl> <em><a href="/xiazai/902144361.html" title="下载">下载</a></em> <div class="clear"></div> </div> <div class="clear"></div> </li> <li> <span><a href="/xiazai/902144360.html" title="Playground AI"><img src="https://img.xiayx.com/uploadfile/info/20260630/1782788078809028.png" alt="Playground AI" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /></a></span> <div class="mnxSyyxCont"> <dl> <dt><a href="/xiazai/902144360.html" title="Playground AI" class="aBlack">Playground AI</a></dt> <dd class="cont1">Android/ <i>|</i> <a href="/xiazai/1048_1/" title="AI绘图" class="bBlack">AI绘图</a></dd> <dd>2026-06-30</dd> </dl> <em><a href="/xiazai/902144360.html" title="下载">下载</a></em> <div class="clear"></div> </div> <div class="clear"></div> </li> <li> <span><a href="/xiazai/902144359.html" title="Adobe Firefly"><img src="https://img.xiayx.com/uploadfile/info/20260630/1782788340724269.png" alt="Adobe Firefly" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /></a></span> <div class="mnxSyyxCont"> <dl> <dt><a href="/xiazai/902144359.html" title="Adobe Firefly" class="aBlack">Adobe Firefly</a></dt> <dd class="cont1">Android/ <i>|</i> <a href="/xiazai/1048_1/" title="AI绘图" class="bBlack">AI绘图</a></dd> <dd>2026-06-30</dd> </dl> <em><a href="/xiazai/902144359.html" title="下载">下载</a></em> <div class="clear"></div> </div> <div class="clear"></div> </li> <li> <span><a href="/xiazai/902144358.html" title="Canva AI"><img src="https://img.xiayx.com/uploadfile/info/20260630/1782788417338107.png" alt="Canva AI" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /></a></span> <div class="mnxSyyxCont"> <dl> <dt><a href="/xiazai/902144358.html" title="Canva AI" class="aBlack">Canva AI</a></dt> <dd class="cont1">Android/ <i>|</i> <a href="/xiazai/1048_1/" title="AI绘图" class="bBlack">AI绘图</a></dd> <dd>2026-06-30</dd> </dl> <em><a href="/xiazai/902144358.html" title="下载">下载</a></em> <div class="clear"></div> </div> <div class="clear"></div> </li> <li> <span><a href="/xiazai/902144357.html" title="Ideogram"><img src="https://img.xiayx.com/uploadfile/info/20260630/1782788497796805.png" alt="Ideogram" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /></a></span> <div class="mnxSyyxCont"> <dl> <dt><a href="/xiazai/902144357.html" title="Ideogram" class="aBlack">Ideogram</a></dt> <dd class="cont1">Android/ <i>|</i> <a href="/xiazai/1048_1/" title="AI绘图" class="bBlack">AI绘图</a></dd> <dd>2026-06-30</dd> </dl> <em><a href="/xiazai/902144357.html" title="下载">下载</a></em> <div class="clear"></div> </div> <div class="clear"></div> </li> <li> <span><a href="/xiazai/902144356.html" title="Leonardo AI"><img src="https://img.xiayx.com/uploadfile/info/20260630/17827885894097.jpg" alt="Leonardo AI" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /></a></span> <div class="mnxSyyxCont"> <dl> <dt><a href="/xiazai/902144356.html" title="Leonardo AI" class="aBlack">Leonardo AI</a></dt> <dd class="cont1">Android/ <i>|</i> <a href="/xiazai/1048_1/" title="AI绘图" class="bBlack">AI绘图</a></dd> <dd>2026-06-30</dd> </dl> <em><a href="/xiazai/902144356.html" title="下载">下载</a></em> <div class="clear"></div> </div> <div class="clear"></div> </li> <li> <span><a href="/xiazai/902144355.html" title="Stable Diffusion"><img src="https://img.xiayx.com/uploadfile/info/20260630/1782788859817029.png" alt="Stable Diffusion" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /></a></span> <div class="mnxSyyxCont"> <dl> <dt><a href="/xiazai/902144355.html" title="Stable Diffusion" class="aBlack">Stable Diffusion</a></dt> <dd class="cont1">Android/ <i>|</i> <a href="/xiazai/1048_1/" title="AI绘图" class="bBlack">AI绘图</a></dd> <dd>2026-06-30</dd> </dl> <em><a href="/xiazai/902144355.html" title="下载">下载</a></em> <div class="clear"></div> </div> <div class="clear"></div> </li> </ul> </div> <div class="mnxDqzcBox2"> <div class="mnxPhbTitle"> <b></b> <h2>精彩专题</h2> <em><a href="/zhuanti/bb_1/" title="更多"><i>更多</i><b></b></a></em> <div class="clear"></div> </div> <ul class="mnxJcztList"> <li> <a href="/zhuanti/404232/" title="代号鸢" class="aWhite"> <img src="/upload/20230516/168420084782584.jpg" alt="代号鸢" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /> <span>代号鸢</span> </a> </li> <li> <a href="/zhuanti/396555/" title="都是人情世故" class="aWhite"> <img src="/upload/20230428/1682647396684343.jpg" alt="都是人情世故" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /> <span>都是人情世故</span> </a> </li> <li> <a href="/zhuanti/391309/" title="鹅鸭杀" class="aWhite"> <img src="/upload/20230421/1682054340389332.png" alt="鹅鸭杀" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /> <span>鹅鸭杀</span> </a> </li> <li> <a href="/zhuanti/389498/" title="轮回茶肆" class="aWhite"> <img src="/upload/20230517/1684288431506773.png" alt="轮回茶肆" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /> <span>轮回茶肆</span> </a> </li> <li> <a href="/zhuanti/388632/" title="我和我的大学" class="aWhite"> <img src="/upload/20230421/1682056161739328.png" alt="我和我的大学" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /> <span>我和我的大学</span> </a> </li> <li> <a href="/zhuanti/387989/" title="愣子跑酷" class="aWhite"> <img src="/upload/20230420/1681954517272978.png" alt="愣子跑酷" onerror="this.src='/style/style2022/mob/mobimages/moren/236_132.png'" /> <span>愣子跑酷</span> </a> </li> <div class="clear"></div> </ul> </div> </div> <!--主体 end--> <!--底部--> <div class="mnxFoot"> <div class="mnxFootMenu"> <div class="mnxFootMenuIn"> <a href="/game/988_1/" title="手游">手游</a> <a href="/zhuanti/bb_1" title="专题">专题</a> <a href="/newslist/825_1.html" title="攻略">攻略</a> <a href="/xiazai/938_1/" title="App下载">App下载</a> <a href="/newslist/1004_1.html" style="color:#303133;">web3</a> <div class="clear"></div> </div> </div> <div class="mnxFootFan"> <div class="mnxFootFanIn"> <a href="/" title="返回首页">返回首页</a> <a href="#" title="回到顶部">回到顶部</a> <div class="clear"></div> </div> </div> <div class="mnxFootMsg"> <dl> <dt>湘ICP备14008430号-1 湘公网安备 43070302000280号</dt> <dd>All Rights Reserved </dd> </dl> <dl> <dt>本站为非盈利网站,不接受任何广告。本站所有软件,都由网友</dt> <dd>上传,如有侵犯你的版权,请发邮件给xiayx666@163.com</dd> </dl> <dl> <dt>抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。</dt> <dd>适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。</dd> </dl> </div> </div> <script src="https://style.xiayx.com/js/jumbpc.js?v=20260710" type="text/javascript"></script> <script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?075ab887d0dd167df1a8b41de83e8c61"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <!--底部 end--> </div> </body> </html>