【发布时间】:2019-09-06 11:55:15
【问题描述】:
我试图在我的项目中使用 PuppeteerSharp 无头浏览器,但它甚至没有初始化。
var task = Task.Run(async () =>
{
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = false
});
var page = await browser.NewPageAsync();
await page.SetUserAgentAsync("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36");
await page.GoToAsync("https://resanehlab.com");
html = await page.GetContentAsync();
});
task.Wait();
当它到达await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); 时,会引发此异常:
远程服务器返回错误:(403) Forbidden
【问题讨论】:
-
取决于平台。
DownloadAsync将使用的唯一 URL 将类似于 storage.googleapis.com/chromium-browser-snapshots/Win_x64/…。也许您无法访问该 URL?如果没有,Puppeteer 在哪个平台上运行? -
@hardkoded 哦,我明白了,googleapis.com 限制了来自我国家的 IP。感谢您的帮助。
-
对我来说,这个问题似乎与使用 .net core 3.0 或更高版本有关。如果我使用 BrowserFetcher 或 ExecutablePath,我会得到相同的 403 错误。然而,在这两种情况下,使用 .net core 2.X 似乎都可以正常工作。
标签: c# puppeteer puppeteer-sharp