C# Фантом JS ajax полная загрузка - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь загрузить все изображения из там . Для этого у меня есть:

private static void GetRenderedWebPage(string url, TimeSpan waitAfterPageLoad, Action<string> callBack)
    {
        const string cEndLine = "All output received";

        var sb = new StringBuilder();
        var p = new PhantomJS();
        p.OutputReceived += (sender, e) =>
        {
            if (e.Data == cEndLine)
            {
                callBack(sb.ToString());
            }
            else
            {
                sb.AppendLine(e.Data);
            }
        };
        p.RunScript(@"
            var page = require('webpage').create();
            page.viewportSize = { width: 1920, height: 1080 };
            page.onLoadFinished = function(status) {
                if (status=='success') {
                    setTimeout(function() {
                        console.log(page.content);
                        console.log('" + cEndLine + @"');
                        phantom.exit();
                }," + waitAfterPageLoad.TotalMilliseconds + @");
            }
        };
        var url = '" + url + @"';
        page.open(url);", new string[0]);
    }
}

И с его помощью:

var htmlDocument = new HtmlDocument();

        try
        {
            GetRenderedWebPage(link, TimeSpan.FromSeconds(0), output =>
            {
                File.WriteAllText("output.txt", output);
                htmlDocument.LoadHtml(output);
            });
        }
        catch ()
        {
            Console.WriteLine("an error has occured.");
        }

Но страница загружается не полностью. Я получаю максимум 60 изображений, но страница содержит около 160. Как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...