You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C#开发在线音乐播放APP遇网页爬取问题求助

解决方案:HtmlAgilityPack加载无内容问题+MP3资源获取线索

让我们一步步解决你的问题:

一、解决HtmlWeb加载后doc无内容的问题

你遇到的大概率是网站反爬拦截或动态内容渲染的问题,试试下面几个方案:

1. 自定义User-Agent绕过基础反爬

很多网站会拦截默认的爬虫请求头,给HtmlWeb设置一个模拟浏览器的User-Agent就能解决大部分基础拦截:

var url = "http://keeng.vn/album/cho-anh-em-nhe-khanh-phong/osYbZ3ph.html";
var web = new HtmlWeb();
// 模拟Chrome浏览器的请求头
web.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36";
var doc = web.Load(url);

2. 处理JavaScript动态渲染的内容

HtmlAgilityPack本身不执行JavaScript,如果页面内容是通过JS动态加载的,就得用能模拟浏览器的工具。比如使用Playwright的.NET版本来获取完整渲染后的DOM:

using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync();
var page = await browser.NewPageAsync();
await page.SetUserAgentAsync("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36");
await page.GotoAsync("http://keeng.vn/album/cho-anh-em-nhe-khanh-phong/osYbZ3ph.html");
// 获取完整渲染后的页面内容
var content = await page.ContentAsync();
var doc = new HtmlDocument();
doc.LoadHtml(content);

3. 添加额外请求头应对复杂反爬

如果上面的方法还不行,打开浏览器开发者工具(F12),查看正常访问该页面时的请求头,把必要的字段(比如Referer、Cookie)添加到HtmlWeb中:

web.PreRequest += (request) => {
    request.Headers.Add("Referer", "http://keeng.vn/");
    // 可以复制浏览器中的Cookie值添加到这里
    // request.Headers.Add("Cookie", "你的Cookie内容");
    return true;
};

二、获取免费MP3资源的关键线索

要拿到MP3下载链接,你可以通过浏览器开发者工具分析网站的请求逻辑:

  • 抓包找音乐API:在开发者工具的「网络」标签里,筛选XHR/Fetch请求,搜索mp3、audio、track、download这类关键词,找到网站获取音乐数据的接口,接口返回的JSON里通常会有audio_url、download_url或者url这类字段。
  • 分析页面元素规则:查看下载按钮的HTML结构,看href属性里的链接格式,或者点击按钮时触发的JS函数,提取链接的生成规则(比如链接里包含cdn、keeng这类标识)。
  • 查找全局JS变量:有些网站会把音乐数据存在全局变量里,比如window.albumTracks、window.songList,你可以在页面源代码里搜索这类变量,直接提取里面的MP3信息。

注意:一定要遵守网站的版权和使用条款,确保你的APP使用这些资源是合规的,避免法律风险。

内容的提问来源于stack exchange,提问作者Hiếu Ngô

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:30:54