Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 21.02.2023
Сообщений: 6

Парсинг даты и ссылки в CSV (скачать файл)

21.02.2023, 14:36. Показов 1407. Ответов 10

Студворк — интернет-сервис помощи студентам
Добрый день! Нужна помощь, только осваиваю PS. С этого сайта беру файл:
https://www.roskazna.gov.ru/op... s/meta.csv
Дальше из этого файла нужно взять дату из строки "valid" 22.02.2023 если дата соответствует текущей, то скачать файл
по ссылке из строки "data" в каталог.

Вот наброски скрипта:
$tofkMeta = "https://www.roskazna.gov.ru/opendata/7710568760-TreasuryAccounts/meta.csv"
$downloadPath = "C:\tmp"

Invoke-WebRequest -Uri $tofkMeta -OutFile (Join-Path -Path $downloadPath -ChildPath "meta.csv")
$DataLink = (Import-Csv -Path (Join-Path -Path $downloadPath -ChildPath "meta.csv") | Where-Object property -eq "data").value
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.02.2023, 14:36
Ответы с готовыми решениями:

Парсинг странички, выбор нужного текста и сохранение в файл csv
программа парсинга. Парсит странички,выберая нужный текст и сохраняет в файл csv. Сделал: 1 перебирает все странички с нужной инфой...

Скачать файл по скрытой ссылки
Здравствуйте. Пытаюсь скачать файл с сайта http://www.acskidd.gov.ua/certificates-search?resultcode=1 по скрытой ссылки...

Вам доступен csv файл data.csv, содержащий информацию в csv формате.Напишите функцию read_csv для чтения данных из файла
Вам доступен CSV-файл data.csv, содержащий информацию в csv формате. Напишите функцию read_csv для чтения данных из этого файла. Она должна...

10
2803 / 501 / 120
Регистрация: 26.09.2020
Сообщений: 948
Записей в блоге: 5
21.02.2023, 17:45
Лучший ответ Сообщение было отмечено YuS_2 как решение

Решение

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ErrorActionPreference = 'Stop'
 
$downloadPath  = "C:\tmp"
$url           = "https://www.roskazna.gov.ru/opendata/7710568760-TreasuryAccounts/meta.csv"
$responce      = Invoke-WebRequest -Uri $url
$meta          = ConvertFrom-Csv $responce.Content
$validinfo     = ($meta | Where-Object Property -eq 'valid').Value
$format        = "dd.MM.yyyy HH:mm"
$provider      = [cultureinfo]::InvariantCulture
$style         = [System.Globalization.DateTimeStyles]::None
$ValidDateTime = [datetime]::MinValue
 
if ([datetime]::TryParseExact($validinfo, $format, $provider, $style, [ref] $ValidDateTime))
{
    if ([datetime]::Now -lt $ValidDateTime) {
        [uri] $uri = ($meta | Where-Object Property -eq 'data').Value
        $OutFile   = Join-Path -Path $downloadPath -ChildPath $uri.Segments[-1]
 
        Invoke-WebRequest -Uri $uri -OutFile $OutFile
    } else {
        "Ссылка просрочена!"
    }
}
без проверок ошибок
2
0 / 0 / 0
Регистрация: 21.02.2023
Сообщений: 6
21.02.2023, 19:56  [ТС]
Спасибо!
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
21.02.2023, 21:57
4egevara,
PowerShell
1
2
3
4
5
6
7
8
9
$url = "https://www.roskazna.gov.ru/opendata/7710568760-TreasuryAccounts/meta.csv"
$out = "c:\tmp"
 
(Invoke-WebRequest $url).Content
| ConvertFrom-Csv 
| Where-Object property -in ('valid', 'data')
| ForEach-Object -Begin {$ht = @{}} -Process {$ht.Add($_.property, $_.value)} -End {$ht} 
| Where-Object {[datetime]::Parse($_.valid).Date -eq [datetime]::Now} 
| ForEach-Object{Invoke-WebRequest $ht.data -OutFile ([io.path]::Join($out,([io.path]::GetFileName($ht.data))))}
0
0 / 0 / 0
Регистрация: 21.02.2023
Сообщений: 6
22.02.2023, 09:05  [ТС]
Скрипт, не сработал ((
Кликните здесь для просмотра всего текста
строка:5 знак:1
+ | ConvertFrom-Csv
+ ~
Пустой элемент канала не допускается.
строка:6 знак:1
+ | Where-Object property -in ('valid', 'data')
+ ~
Пустой элемент канала не допускается.
строка:7 знак:1
+ | ForEach-Object -Begin {$ht = @{}} -Process {$ht.Add($_.property, $_ ...
+ ~
Пустой элемент канала не допускается.
строка:8 знак:1
+ | Where-Object {[datetime]::Parse($_.valid).Date -eq [datetime]::Now}
+ ~
Пустой элемент канала не допускается.
строка:9 знак:1
+ | ForEach-Object{Invoke-WebRequest $ht.data -OutFile ([io.path]::Join ...
+ ~
Пустой элемент канала не допускается.
+ CategoryInfo : ParserError: ( [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : EmptyPipeElement
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
22.02.2023, 10:23
4egevara, sorry

PowerShell
1
#REQUIRES -Version 7
0
0 / 0 / 0
Регистрация: 21.02.2023
Сообщений: 6
22.02.2023, 10:45  [ТС]
Попробовал в PS-7 ошибка повторилась.
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
22.02.2023, 13:19
4egevara,

попробуйте так

PowerShell
1
2
3
4
$url = "https://www.roskazna.gov.ru/opendata/7710568760-TreasuryAccounts/meta.csv"
$out = "c:\tmp"
 
(Invoke-WebRequest $url).Content | ConvertFrom-Csv | Where-Object property -in ('valid', 'data') | ForEach-Object -Begin {$ht = @{}} -Process {$ht.Add($_.property, $_.value)} -End {$ht}  | Where-Object {[datetime]::Parse($_.valid).Date -eq [datetime]::Now}  | ForEach-Object{Invoke-WebRequest $ht.data -OutFile ([io.path]::Join($out,([io.path]::GetFileName($ht.data))))}
0
0 / 0 / 0
Регистрация: 21.02.2023
Сообщений: 6
22.02.2023, 13:28  [ТС]
alha os Скрипт ошибок не выдал, но не скачал нужный файл.
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
22.02.2023, 13:34
дак это затребованное вами поведение
Цитата Сообщение от 4egevara Посмотреть сообщение
22.02.2023 если дата соответствует текущей
PowerShell
1
2
3
4
$url = "https://www.roskazna.gov.ru/opendata/7710568760-TreasuryAccounts/meta.csv"
$out = "c:\tmp"
 
(Invoke-WebRequest $url).Content
Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
"property","value"
"standardversion","http://opendata.gosmonitor.ru/standard/3.0"
"identifier","7710568760-TreasuryAccounts"
"title","Справочник казначейских счетов"
"description","Информация о казначейских счетах, открытых в Федеральном казначействе"
"creator","Федеральное казначейство"
"created","25.12.2020"
"modified","22.02.2023"
"subject","Система казначейских платежей, казначейский счет, единый казначейский счет, БИК, казначейские платежи"
"publishername","Чернов Андрей Анатольевич, заместитель начальника Управления развития бюджетных платежей"
"publisherphone","+74952147516"
"publishermbox","achernov@roskazna.ru"
"format","CSV   "
"provenance","Актуализация набора открытых данных"
"valid","23.02.2023 18:00"
"data","http://www.roskazna.gov.ru/upload/iblock/d68/data_202302220000_structure_20210401T0000.CSV"
"structure_20210401T0000","http://www.roskazna.gov.ru/upload/iblock/85a/structure_20210401T0000.CSV"
1
0 / 0 / 0
Регистрация: 21.02.2023
Сообщений: 6
22.02.2023, 13:39  [ТС]
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.02.2023, 13:39
Помогаю со студенческими работами здесь

Не могу скачать файл из ссылки <a> + не могу подконектится по ftp в тотале.
Всем привет. Хочу на своем сайте выложить мое резюме. Создал следующую ссылку: &lt;a href='ftp://МоеРезюме.rtf'&gt;Cкачать мое...

Запись в CSV-файл из массива. Не является форматом csv!
В общем искал работу... Дали тестовое написать парсер для сайта с выводом информации в csv-файл. Всё написал, сбросил, пришёл ответ что у...

CSV парсинг
Всем доброго времени суток! Сразу хочу сказать что я не лентяй,который пишет на форум что бы ему что-то за него сделали, а всегда...

Парсинг и запись в CSV
Пишу скрипт, с помощью которого каждый день полученные с сайта данные должны записываться в CSV-файл в определенном порядке. С записью этих...

Парсинг CSV файлов
Здравствуйте! Столкнулся с проблемой. Надо подгрузить локальный CSV файл в скрипте для парсинга. Это CSV файл. Name; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru