PuppeteerSharp 未加载视频

时间:2021-03-03 13:55:20

标签: puppeteer-sharp

我正在尝试在我的 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 浏览器中播放视频,但是一旦浏览器应用程序执行点击播放,视频就会显示一些错误并且无法播放。 是网站保护还是我做错了什么? 如果我尝试其他网站点击执行器正常,我该怎么办?

0 个答案:

没有答案