Как войти на веб-сайт Flash с помощью WebClient и загрузить файл с помощью С#?

Я хочу войти на веб-сайт и загрузить файл .csv, а кнопка загрузки файла находится на второй вкладке. Но для сайта необходим flash player. Вот одна из моих попыток:

 public class CookieAwareWebClient : WebClient
    {
        private CookieContainer cookie = new CookieContainer();

        protected override WebRequest GetWebRequest(Uri address)
        {
            WebRequest request = base.GetWebRequest(address);
            if (request is HttpWebRequest)
            {
                (request as HttpWebRequest).CookieContainer = cookie;
            }
            return request;
        }
    }

а также

var client = new CookieAwareWebClient();
        client.BaseAddress = @"https://example.com/";
        var loginData = new NameValueCollection();
        loginData.Add("username", "my user");
        loginData.Add("password", "my pwd");
        client.UploadValues("login/", "POST", loginData);

        string htmlSource = client.DownloadString("After login page");

Результат:-

ПРИМЕР

Добро пожаловать в пример

Например, это инструмент отчетности, который отслеживает продажи вашей музыки. Здесь вы можете проверить, как продаются ваши релизы, обновить информацию о своей учетной записи и просмотреть квартальные/ежемесячные отчеты. Информация обновляется в режиме реального времени, поэтому цифры, которые вы видите, актуальны.

Почему я вижу эту страницу?

Если вы видите эту страницу, в вашем браузере не установлен Adobe Flash Player (версия 9 или выше) и/или у вас не включен javascript. Если вы все еще видите эту страницу после установки Adobe Flash Player и у вас включен JavaScript, свяжитесь с нами по адресу [email protected].

Получить Adobe Flash Player

© пример, 2007


person Gurpreet Gill    schedule 19.12.2015    source источник
comment
Флэш-приложение, скорее всего, обращается к серверу для представления своих данных (по крайней мере, вы можете сделать прямой вызов для загрузки файла, не взаимодействуя с приложением). Вы можете установить такой инструмент, как fiddler, для просмотра этих запросов и выполнять эти запросы программно, не загружая приложение flash.   -  person Rob    schedule 19.12.2015


Ответы (1)


Вы не можете сделать это с помощью простого WebClient.

Чтобы сделать то, что вам нужно, я предлагаю вам использовать автоматизацию браузера с помощью Selenium и Chrome Driver. Поскольку браузер уже поддерживает флэш-память, вам просто нужно использовать Selenium для навигации и выполнения того, что вы хотите.

person Alberto Monteiro    schedule 19.12.2015
comment
Я использовал Selenium, он не загрузил файл. Он просто вошел в систему, потому что страница входа не флэш-память, но после входа в систему ничего не произошло. - person Gurpreet Gill; 19.12.2015
comment
Есть ли другой способ сделать это без веб-клиента? или скажите мне, что нужно установить какой-либо плагин в Selenium, который поддерживает flash - person Gurpreet Gill; 19.12.2015
comment
@GurpreetGill Я действительно не знаю. У меня были некоторые проблемы с flash, я использовал поисковый робот, и на сайтах, которые я сканировал, есть капча, поэтому я использовал Death By Captcha для их решения, но был один сайт, на котором капча была компонентом flash, и это заставило меня перейти на селен, у меня нет проблем с загрузкой всей страницы. - person Alberto Monteiro; 19.12.2015
comment
Спасибо, Альберто Монтейро, попробую, потом сообщу результат - person Gurpreet Gill; 19.12.2015
comment
@GurpreetGill Добро пожаловать, если вам нужно что-то еще, дайте мне знать. Я надеюсь, что вы можете решить вашу проблему: D - person Alberto Monteiro; 19.12.2015
comment
Он не загружал файл. Пожалуйста, расскажите мне, как использовать Selenium вкратце, я новый пользователь. Я только что установил дополнения в свой браузер Firefox. Нужно ли устанавливать что-то еще? - person Gurpreet Gill; 19.12.2015
comment
На YouTube есть простое руководство, которое вы можете посмотреть на youtube.com/watch?v=2ac4hKSfQ9s После этого вы можете посмотреть это видео, чтобы узнать, как работать с flash в селене youtube.com /watch?v=wd2NZLyvNAU, он использует java, но это почти то же самое. - person Alberto Monteiro; 19.12.2015
comment
Давайте продолжим обсуждение в чате. - person Gurpreet Gill; 19.12.2015
comment
Он не загрузил файл, потому что у меня нет идентификатора элемента, имени и т. Д. Какой-либо информации. Есть любой способ нажать на эту кнопку, используя координаты браузера - person Gurpreet Gill; 23.12.2015