我正在尝试在我的 puppeteer 浏览器中播放视频,但是一旦浏览器应用程序执行点击播放,视频就会显示一些错误并且无法播放。 是网站保护还是我做错了什么? 如果我尝试其他网站点击执行器正常,我该怎么办?
我的代码:
using puppe_ua;
using PuppeteerSharp;
using PuppeteerSharp.Extra;
using PuppeteerSharp.Extra.Evasions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace pupe
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
GlobalData.UserAgents = UserAgents.UserAgentData;
}
private async void button1_Click(object sender, EventArgs e)
{
//string _userAgent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36";
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = false,
Args = new string[4]
{
"--disable-gpu",
"--enable-automation",
"--disable-setuid-sandbox",
"--enable-automation"
}
});
var page = await browser.NewPageAsync();
await page.SetUserAgentAsync("Mozilla/5.0 (Linux; Android 9; SM-A102U Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36 Instagram 155.0.0.37.107 Android (28/9; 320dpi; 720x1468; samsung; SM-A102U; a10e; exynos7885; en_US; 239490550)");
// await page.SetUserAgentAsync(UserAgents.UserAgentData.ToArray);
await page.SetViewportAsync(new ViewPortOptions
{
Width = 720,
Height = 1468
});
await page.GoToAsync("https://live.shopee.com.my/p/share?from=live&session=1231359&viewer=115#copy_link");
var allResultsSelector = ".bNwffg";
await page.WaitForSelectorAsync(allResultsSelector);
await page.ClickAsync(allResultsSelector);
//await page.Mouse.ClickAsync(100, 100);
//("https://bot.sannysoft.com/");
//wait page.GoToAsync("https://antoinevastel.com/bots"); //https://bot.sannysoft.com/
//await page.ScreenshotAsync("screens/test.png", new ScreenshotOptions { Type = ScreenshotType.Png });
//MessageBox.Show("screen done!");
}
}
}
public class PuppeteerExtraPluginStealth : PuppeteerExtraPlugin
{
private static readonly IReadOnlyDictionary<string, Type> EvasionPluginTypes = new Dictionary<string, Type>
{
{ "navigator.languages", typeof(NavigatorLanguagesEvasionPlugin) },
{ "navigator.plugins", typeof(NavigatorPluginsEvasionPlugin) },
{ "window.outerdimensions", typeof(WindowOuterDimensionsEvasionPlugin) }
};
public override string Name => "stealth";
public override IPluginOptions Defaults
{
get
{
HashSet<string> availableEvasions = new HashSet<string>
{
//"chrome.runtime",
//"console.debug",
"navigator.languages",
"navigator.permissions",
"navigator.webdriver",
"navigator.plugins",
"window.outerdimensions",
"webgl.vendor",
//"user-agent"
};
return new Options
{
AvailableEvasions = availableEvasions,
EnabledEvasions = new HashSet<string>(availableEvasions)
};
}
}
public override ISet<Type> Dependencies => new HashSet<Type>(((Options)Opts).EnabledEvasions.Select(x => EvasionPluginTypes[x]));
public HashSet<string> AvailableEvasions => ((Options)Defaults).AvailableEvasions;
public HashSet<string> EnabledEvasions
{
get => ((Options)Opts).EnabledEvasions;
set => ((Options)Opts).EnabledEvasions = value;
}
public class Options : IPluginOptions
{
public HashSet<string> AvailableEvasions { get; set; }
public HashSet<string> EnabledEvasions { get; set; }
}
}
我正在尝试在我的 puppeteer 浏览器中播放视频,但是一旦浏览器应用程序执行点击播放,视频就会显示一些错误并且无法播放。 是网站保护还是我做错了什么? 如果我尝试其他网站点击执行器正常,我该怎么办?