Используя. Net, как я могу программно переходить на веб-страницу, взаимодействовать с ней через код, а затем получать определенные значения с вновь созданной страницы - PullRequest
0 голосов
/ 06 августа 2020

У меня есть сценарий, в котором я хотел бы программно автоматизировать следующий процесс:

В настоящее время мне нужно вручную

  1. Перейти на веб-страницу
  2. Enter некоторый текст (электронное письмо) в определенном поле на веб-странице
  3. Нажмите кнопку «Поиск», которая создает новую страницу, содержащую таблицу с результатами на ней.
  4. Прокрутите вручную сгенерированную таблицу результатов и извлеките 4 части информации.

Есть ли способ сделать это из настольного приложения WPF, используя C#?

Я знаю, что есть WebClient тип, который может загружать string, предположительно содержимого веб-страницы, но я не понимаю, как это могло бы мне помочь.

Мои знания о веб-материалах практически отсутствуют, поэтому Я совершенно не понимаю, как go об этом или даже если это возможно?

Спасибо.

Ответы [ 3 ]

1 голос
/ 06 августа 2020

Что ж, я напишу алгоритм для вас, но вам также понадобится домашнее задание.

  1. Используйте WebClient, чтобы получить htm-страницу с формой, которую вы хотите автоматически заполнить и отправить
  2. Используем регулярное выражение и извлекаем атрибут действия формы, которую вы хотите отправить автоматически. Это даст вам URL-адрес, на который вы хотите отправить свой следующий запрос.
  3. Поскольку вы знаете поля в этой форме, создайте класс, соответствующий этим полям, давайте вызовем класс AutoClass
  4. Создайте новый экземпляр вашего автоматического класса и назначьте значения, которые вы хотите автоматически заполнить
  5. Используя WebClient для отправки вашего нового запроса с URL-адресом, который вы извлекли из формы ранее, прикрепите свой объект, который вы хотите отправить на сервер либо посредством сериализации, либо любым методом.
  6. Отправьте запрос и дождитесь обратной связи, затем дальнейшие действия
1 голос
/ 06 августа 2020

Либо используйте веб-драйвер, такой как Puppeteer (Selenium вроде как мертв), либо используйте протокол HTTPS для веб-запросов (если вас не останавливают проверки ботов). Мне кажется, вы ищете последний метод, потому что в этом случае нет причин использовать веб-драйвер, когда можно использовать более легкий метод, такой как HTTP-запросы.

Вы можете использовать RestSharp или встроенные библиотеки, если вы хотеть. Здесь - это популярная ветка способов отправки запросов со встроенными библиотеками в C#.

Чтобы выяснить, что вам нужно отправить, вы должны использовать такой инструмент, как Fiddler или Chrome Инструменты разработчика (в частности, вкладка «Сеть»), чтобы увидеть, что вам нужно отправить, чтобы достичь своей цели, как в браузере.

1 голос
/ 06 августа 2020

Я думаю, что веб-драйвер - это то, что вы ищете, я бы предложил использовать Selenium , вы можете переходить по сайтам и отправлять ввод или щелчки для указания c элементов в них.

...