从爬虫实战出发:零基础用 JavaScript 探索技术世界
大家好,我是一名开源项目维护者,也长期在社区做 AIGC 相关的技术分享。最近收到不少初学者的私信:“想转行做开发,但不知道从哪开始”“听说 JavaScript 很重要,但看不懂代码”“想做点小项目丰富简历,又怕太难”……这些焦虑我都懂——我当初学编程时,连“变量”是什么都要查半小时。
今天这篇教程,就带你用最接地气的方式,从一个真实的求职场景出发,亲手写一个能放进简历的 JavaScript 爬虫小工具。全程零基础友好,只要你愿意动手,就能走完这段探索之旅。
为什么从爬虫开始?
很多新手一听到“爬虫”,就觉得是黑客技术、高深莫测。其实不然。爬虫的本质就是“自动下载网页内容”,就像你用浏览器打开一个招聘网站,然后复制粘贴职位信息一样——只不过我们用代码让它自动完成。
对求职者来说,这更是个黄金技能:
- 能抓取招聘信息,分析哪些技能最吃香
- 可以批量收集公司数据,做个性化投递策略
- 写进简历里,证明你有“解决问题+动手实践”的能力
更重要的是:它能让你快速理解 JavaScript 的核心逻辑,比如请求、解析、循环、函数——这些都是前端、后端甚至自动化脚本的基础。
第一步:搭好你的“工具箱”
别担心!我们不需要安装复杂的软件。只需要两样东西:
- Node.js(JavaScript 的运行环境)
- 一个代码编辑器(推荐 VS Code)
安装 Node.js(3 分钟搞定)
- 打开官网 https://nodejs.org
- 点击 LTS 版本(长期支持版,更稳定)下载
- 双击安装包,一路“下一步”即可
✅ 验证是否成功:
node -v
npm -v
如果看到版本号(如 v18.17.0),说明安装成功!
💡 小贴士:Node.js 让 JavaScript 不仅能在浏览器里跑,还能在电脑本地运行——这是写爬虫的关键!
安装 VS Code
去 https://code.visualstudio.com 下载安装即可。它免费、轻量、对新手极其友好。
核心概念:用“寄快递”理解网络请求
在写代码前,先搞懂一件事:你的程序怎么拿到网页内容?
想象你要寄一个包裹:
- 你(客户端) → 告诉快递员(浏览器/Node.js) → 去某地址(URL)取件(HTML 内容)
这个过程,在技术上叫 HTTP 请求(Request)和响应(Response)。
在 JavaScript 中,我们常用 fetch 或第三方库(如 axios)来发请求。但为了简单,我们先用 Node.js 内置的 https 模块。
不过——新手常犯的错误是直接请求复杂网站。很多网站会检测“是不是真人”,如果不是,就返回空或验证码。
所以,我们的第一个目标选一个简单、公开、无反爬的网站。
实战项目:抓取一本编程书籍的免费章节
我们以 https://example.com 为例(注:这是一个标准测试域名,实际我们会用真实可访问的资源)。但为了教学安全,我们改用一个公开的 JSON API 来模拟抓取过程——这样既合法,又能学到核心逻辑。
📚 真实场景建议:可抓取 GitHub 公开仓库、豆瓣读书公开接口(注意遵守 robots.txt)、或自己搭建的测试页面。
步骤 1:创建项目文件夹
在桌面新建文件夹 my-first-crawler,打开 VS Code。
步骤 2:初始化项目
在终端执行:
npm init -y
这会生成一个 package.json 文件,记录项目信息。
步骤 3:写第一段爬虫代码
新建文件 crawler.js,输入以下代码:
// 引入内置模块
const https = require('https');
// 目标 URL:一个提供免费编程书籍信息的公开 API
const url = 'https://api.publicapis.org/entries?category=books';
https.get(url, (response) => {
let data = '';
// 当接收到数据片段时,拼接到 data
response.on('data', (chunk) => {
data += chunk;
});
// 当所有数据接收完毕
response.on('end', () => {
try {
const jsonData = JSON.parse(data);
console.log('共找到', jsonData.count, '个书籍相关 API');
// 打印前3个
jsonData.entries.slice(0, 3).forEach((entry, index) => {
console.log(`\n【${index + 1}】${entry.API}`);
console.log('描述:', entry.Description);
console.log('链接:', entry.Link);
});
} catch (error) {
console.error('解析失败:', error.message);
}
});
}).on('error', (err) => {
console.error('请求出错:', err.message);
});
步骤 4:运行看看!
在终端输入:
node crawler.js
你会看到类似输出:
共找到 12 个书籍相关 API
【1】Google Books
描述: Search and access book information
链接: https://developers.google.com/books/
【2】Open Library
描述: Access to millions of books
链接: https://openlibrary.org/developers/api
...
🎉 恭喜!你刚刚完成了一个真实的“数据抓取”任务!
升级:把结果保存到文件,方便求职展示
光打印不够酷。我们把它存成 books.csv,这样你可以附在简历里说:“我用 JS 自动采集并整理了技术书籍资源”。
修改 crawler.js,在 response.on('end') 里加一段:
// ... 解析 jsonData 后
// 构建 CSV 内容
let csvContent = '书名,描述,链接\n';
jsonData.entries.slice(0, 5).forEach(entry => {
// 处理逗号和换行(简单处理)
const name = `"${entry.API.replace(/"/g, '""')}"`;
const desc = `"${entry.Description.replace(/"/g, '""')}"`;
csvContent += `${name},${desc},${entry.Link}\n`;
});
// 写入文件
const fs = require('fs');
fs.writeFile('books.csv', csvContent, (err) => {
if (err) {
console.error('保存失败:', err);
} else {
console.log('\n✅ 数据已保存到 books.csv!');
}
});
再运行一次,你会发现项目目录多了一个 books.csv 文件,用 Excel 打开就能看到整齐的表格!
新手常见问题解答
| 问题 | 原因 | 解决方案 |
|---|---|---|
Error: connect ECONNREFUSED |
网络不通或 URL 错误 | 检查网址是否能浏览器打开;确认是否需要代理 |
JSON.parse failed |
返回的不是 JSON | 用 console.log(data) 先看原始内容 |
| 抓不到淘宝/招聘网站数据 | 网站有反爬机制 | 初期避开这类网站,用公开 API 练手 |
| 代码不执行,没报错也没输出 | 忘记运行 node 文件名 |
确保在终端正确执行命令 |
🔍 避坑指南:永远不要一上来就抓大厂网站!先用
https://httpbin.org/get这种测试接口验证你的代码逻辑。
学习路径建议:从爬虫走向求职竞争力
你已经迈出了关键一步。接下来,我建议你按这个路线深化:
巩固 JavaScript 基础
- 重点掌握:变量、函数、数组方法(
map,filter)、异步(async/await) - 推荐书籍:《JavaScript 高级程序设计》(红宝书)第4版,前6章足够入门
- 重点掌握:变量、函数、数组方法(
尝试更真实的爬虫
- 用
axios替代原生https(更简洁) - 学会用
cheerio解析 HTML(像 jQuery 一样操作网页结构)
const axios = require('axios'); const cheerio = require('cheerio'); const { data } = await axios.get('https://example.com'); const $ = cheerio.load(data); const title = $('h1').text(); // 提取标题- 用
构建完整项目
- 抓取某招聘网站的“JavaScript 岗位”列表
- 统计高频技能词(如 React, Vue, Node.js)
- 生成可视化报告(用
chart.js或导出 Excel)
写进简历
- 项目名称:“基于 Node.js 的招聘信息分析工具”
- 技术栈:JavaScript, Axios, Cheerio, CSV 生成
- 成果:帮助识别市场热门技能,提升求职针对性
最后的话
我当初学的时候,也是从一行 console.log('Hello World') 开始的。技术探索不怕慢,就怕不动手。今天这个小爬虫,看似简单,但它包含了网络请求、数据解析、文件操作三大核心能力——这正是企业看重的“工程思维”。
记住:求职不是比谁背的理论多,而是比谁能用技术解决实际问题。你抓取的每一行数据,都在为你的简历增加一份真实力。
现在,打开你的 VS Code,把 crawler.js 跑起来吧。我在开源社区等你提交第一个 PR!
🌱 延伸行动建议:
- 把代码上传到 GitHub,起名叫
job-hunting-crawler- 在 README 里写下你的学习心得
- 关注
public-apis/public-apis仓库,发现更多免费数据源
技术之路,始于足下。你,已经出发了。

评论 0