web-scraping - 如何使用 Headless Chrome Node.js API 避免“请验证您是人类”?
问题描述
我正在尝试使用 Puppeteer api 从网站生成一些 pdf 图像,但 Perimeterx 机器人检测将其检测为机器人和阻止站点。使用 Puppeteer 模仿真实的浏览器标题并绕过机器人防御者是否容易解决?
var options = new LaunchOptions
{
Headless = true
};
Console.WriteLine("Downloading chromium");
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
Console.WriteLine("Navigating");
using (var browser = await Puppeteer.LaunchAsync(options))
using (var page = await browser.NewPageAsync())
{
await page.GoToAsync("https://www.matchesfashion.com");
Console.WriteLine("Generating PDF");
await page.PdfAsync(Path.Combine(Directory.GetCurrentDirectory(), "image.pdf"));
Console.WriteLine("Export completed");
if (!args.Any(arg => arg == "auto-exit"))
{
Console.ReadLine();
}
}
解决方案
推荐阅读
- java - 在 java 类中在运行时为类型使用不同的类路径
- python - IsolationForest KeyError:“[Index([''], dtype='object')] 均不在 [columns] 中”
- python-3.x - 将 POST 请求值从反应发送到烧瓶时未定义名称错误数据
- jmeter - 在 bin 目录中录制时不保存证书
- git - Git强制推送git不知道的文件改变了?
- ios - iOS:为什么 UIWindow 不显示?
- javascript - 无法使 highlight.js 与我的 Javascript 函数一起使用
- azure-devops - azure devops:将文件复制到工件文件夹以在发布管道中访问
- c# - 获取“T”必须是具有公共无参数构造函数的非抽象类型,以便在泛型类型或方法中将其用作参数“T”
- python - python中的Openpyxl制作for循环以将许多excel文件中的特定行合并为一个