using PuppeteerSharp;
// 下载内核浏览器
//await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions()
{
Headless = true
});
var page = await browser.NewPageAsync();
await page.GoToAsync("https://www.dszuqiu.com/panlu/1016229");
// 设置浏览器宽高
await page.SetViewportAsync(new ViewPortOptions
{
Width = 960,
Height = 1000,
IsMobile = false,
IsLandscape = false,
});
// 设置最大超时时间
await page.WaitForTimeoutAsync(1500);
var desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
var sPath = Path.Combine(desktop, "Snapshot.txt");
var content = await page.GetContentAsync();
// 网页内容输出至控制台
Console.WriteLine(content);
Playwright for .Net
Microsoft.Playwright 是由微软开发的开源自动化测试工具,支持多种编程语言(如 C#、JavaScript、Python 等)和主流浏览器(Chromium、Firefox、WebKit)。它通过统一的 API 提供跨浏览器的自动化能力,广泛应用于 Web 应用的端到端测试、爬虫开发和自动化任务,支持无头模式、设备仿真、截图等功能,帮助开发者高效实现自动化测试和开发任务。
// See https://aka.ms/new-console-template for more information
using System.Text.RegularExpressions;
using Microsoft.Playwright;
Console.WriteLine("Hello, World!");
// 创建 Playwright 实例
usingvar playwright = await Playwright.CreateAsync();
// 指定浏览器的可执行文件路径
string executablePath = @"C:\Program Files\Google\Chrome\Application\chrome.exe";
// 启动浏览器(Chromium)
awaitusingvar browser = await playwright.Chromium.LaunchAsync(
new BrowserTypeLaunchOptions {
Headless = false,
ExecutablePath = executablePath,
}
);
// 创建新页面
var page = await browser.NewPageAsync();
// 打开目标网页
await page.GotoAsync("https://cn.bing.com/");
// 定位搜索框并输入“Netshare”
var searchBox = page.Locator("input[name='q']");
await searchBox.FillAsync("dotnetshare");
// 模拟按下回车键进行搜索
await searchBox.PressAsync("Enter");
// 等待页面加载完成
await page.RunAndWaitForConsoleMessageAsync(async () => {
}
);
Thread.Sleep(2000);
// 截图保存搜索结果页面
await page.ScreenshotAsync(new PageScreenshotOptions { Path = "bing-search-result.png" });
// 选择下拉框中的选项
//await page.SelectOptionAsync("select[name='name']", "dotnetshare");
// 找到文件上传输入框
//var fileInput = await page.QuerySelectorAsync("input[type='file']");
// 上传文件
//string filePath = "C:\\Users\\Pride\\Pictures\\20210517111144223.png";
//await fileInput.SetInputFilesAsync(filePath);
// 提取页面标题
//string title = await page.TitleAsync();
//Console.WriteLine("Page title: " + title);
// 等待表格加载完毕
//await page.WaitForSelectorAsync("table");
// 获取表格内容
//var tableHtml = await page.InnerHTMLAsync("table");
// 使用正则表达式提取表格数据
//var regex = new Regex(@"<tr>(.*?)</tr>");
//var matches = regex.Matches(tableHtml);
// 关闭浏览器
//await browser.CloseAsync();