Я пытаюсь автоматизировать сбор данных из списка совместимости оборудования vmware, ориентированного на продукты VSAN.
У них есть страница с возможностью поиска, и как только вы введете запрос, вы получите список результатов. У них также есть кнопка, которая позволяет «экспортировать в CSV» результатов.
Вот URL-адрес, с которым я пытаюсь работать:
https://www.vmware.com/resources/compatibility/search.php?deviceCategory=hdd&vsan_type=vsanhdd&page=1&display_interval=500&details=1
Я пытаюсь нажать эту кнопку «Экспорт в CSV» с помощью кода Powershell.
Я могу найти элемент, который пытаюсь щелкнуть, и вижу, что у него есть метод с именем. "Click ()", но он ничего не делает при вызове.
$url = "https://www.vmware.com/resources/compatibility/search.php?deviceCategory=hdd&vsan_type=vsanhdd&page=1&display_interval=500&details=1"
$webrequest = Invoke-WebRequest -Uri $url
$a = $webrequest.ParsedHtml.getElementById("export_csv")
$a.Cick()
Использование инструментов разработчика Chromes Я заметил, что после нажатия кнопки export_csv делается запрос на публикацию другого URL, который фактически генерирует файл. Запрос на публикацию содержит фактические данные, которые поступают в CSV, я полагаю, что они уже сгенерированы где-то на странице, но я не могу извлечь эту форму из переменной $ webrequest.
Также я вижу, что к телу функции добавлена форма экспорта, я почти уверен, что это источник данных POST (кажется, что это делает функция javascript). Однако я не могу программно достичь того элемента «формы», который я вижу в Chrome Developer Tools при ручной проверке страницы.
Я был бы рад, если бы я мог извлечь либо данные POST, либо просто вызвать функцию экспорта в CSV и получить файл, который она выводит.
Любые идеи о том, как я могу выполнить любой из этих?
Спасибо