使用JavaScript爬取Bugs音乐榜单时出现500错误的解决咨询
解决Bugs Music爬虫返回500错误的问题
嘿,碰到500错误先别慌,我们一步步来排查:
第一步:确认是否是网站自身问题
先手动在浏览器里打开 https://music.bugs.co.kr/chart/track/day/kpop 看看能不能正常访问:
- 如果浏览器也返回500,那说明是网站服务器端的故障,这种情况只能等官方修复,你可以过几个小时再试试。
- 如果浏览器能正常打开页面,那问题就出在你的爬虫请求上,继续往下看。
第二步:添加浏览器模拟请求头
Bugs Music大概率会验证请求的User-Agent,默认的Crawler库请求可能会被识别为机器人,导致服务器返回500。你需要在爬虫配置里添加模拟浏览器的请求头:
修改后的代码示例:
const Crawler = require('crawler'); exports.daily = async () => { var c = new Crawler({ maxConnections: 10, // 添加模拟浏览器的请求头 headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'Accept-Language': 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7' }, callback: function (error, res, done) { if (error) { console.log(error); } else { try{ console.log(res.statusCode); // 后续可以在这里处理页面DOM内容 } catch (e) { console.log(e); } } done(); } }); let url = 'https://music.bugs.co.kr/chart/track/day/kpop'; c.queue(url); }
第三步:排查IP限制或请求频率问题
如果加了请求头还是返回500,可能是你的IP被网站临时限制了:
- 可以尝试给爬虫添加请求延迟,比如在Crawler配置里加
rateLimit: 1000(每秒最多请求1次),避免请求过于频繁触发反爬机制。 - 也可以换一个网络环境(比如用手机热点)测试,看看是不是IP的问题。
辅助测试:用curl验证请求状态
你可以在终端里执行以下命令,直接测试请求的状态码:
curl -I "https://music.bugs.co.kr/chart/track/day/kpop"
- 如果返回
HTTP/2 200,说明网站正常,问题还是在你的爬虫请求配置上; - 如果返回
HTTP/2 500,那确实是网站服务器的问题,耐心等待修复即可。
内容的提问来源于stack exchange,提问作者wang kwang Lee
相关产品推荐
相关产品推荐

