In Puppeteer-Sharp, which is the .NET port of the Puppeteer API, you can switch between user-agent strings by using the SetUserAgentAsync
method on the Page
object. This allows you to simulate requests from different browsers or devices. Below is an example of how you could switch between user-agent strings in Puppeteer-Sharp.
First, you need to install Puppeteer-Sharp via NuGet. You can do this either through the NuGet Package Manager Console:
Install-Package PuppeteerSharp
Or by adding a package reference in your project file:
<ItemGroup>
<PackageReference Include="PuppeteerSharp" Version="x.x.x" />
</ItemGroup>
Replace x.x.x
with the latest version of Puppeteer-Sharp.
Here's a sample C# code snippet that demonstrates how to switch between user-agent strings using Puppeteer-Sharp:
using System;
using System.Threading.Tasks;
using PuppeteerSharp;
class Program
{
public static async Task Main(string[] args)
{
// Download the Chromium browser if it's not already present
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
// Launch the browser
using var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = true // Set to false if you want to see the browser
});
// Create a new page
using var page = await browser.NewPageAsync();
// Define user-agent strings for different devices/browsers
string userAgentDesktop = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36";
string userAgentMobile = "Mozilla/5.0 (Linux; Android 9; Pixel 3 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Mobile Safari/537.36";
// Set the user-agent to desktop
await page.SetUserAgentAsync(userAgentDesktop);
// Go to a website with the desktop user-agent
await page.GoToAsync("https://www.example.com");
// Do something with the page...
// Now switch to the mobile user-agent
await page.SetUserAgentAsync(userAgentMobile);
// Go to the same website with the mobile user-agent
await page.GoToAsync("https://www.example.com");
// Do something with the page...
// Close the browser
await browser.CloseAsync();
}
}
In this example, we're launching a headless browser, creating a new page, and then setting the user-agent string to a desktop browser's user-agent. After visiting a website and potentially interacting with it, we change the user-agent string to that of a mobile browser and visit the same website again.
Remember to always use legitimate user-agent strings and respect the website's terms of service and robots.txt file when using Puppeteer-Sharp or any web scraping tool.