【发布时间】:2021-03-29 18:53:48
【问题描述】:
我需要检查文件大小是否超过给定大小,取消下载。
这是我的LaunchOptions:
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = true,
ExecutablePath = ChromePath,
IgnoreHTTPSErrors = true,
Args = new[] { "--disable-extensions" }
});
在这里我做得更多:
await page.Client.SendAsync("Page.setDownloadBehavior", new
{
behavior = "allow",
downloadPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
});
await page.SetRequestInterceptionAsync(true);
page.Request += (s, er) =>
{
if (er.Request.Headers.ContainsKey("Content-Length") && Convert.ToInt64(er.Request.Headers["Content-Length"]) > GIVENSIZE)
{
er.Request.AbortAsync();
return;
}
}
有两个问题,--disable-extensions 不起作用,会弹出 Internet 下载管理器下载文件,并且请求不包含 Content-Length 标头让我检查文件大小。
有什么想法吗?
【问题讨论】:
-
也许您可以通过一些涉及 TCP 包的低级操作以某种方式获得校验和,然后同样找到大小。
标签: c# puppeteer puppeteer-sharp