@TechNOIR

Powershell. Как дозаписывать информацию в файл?

Доброго времени суток!

Я использую модуль Export-Excel. Пытаюсь выгрузить через foreach по нескольким ссылкам значения в таблицу. Но в итоге в таблицу попадает только одна строка - значения с последней ссылки в файле. У Out-File есть что-то подобное -Append,который дозаписывает в файл. Может и здесь как то так надо?

[Reflection.Assembly]::LoadFrom("C:\selenium\net40\WebDriver.dll")
$url = Get-Content D:\dww.txt
$ie = New-Object OpenQA.Selenium.PhantomJS.PhantomJSDriver
foreach ($u in $url) {
$ie.Navigate().GoToUrl($u)
$title = $ie.FindElementByXPath("//h1[contains(@class, 'fullstory')]")
$fullstory = $ie.FindElementByClassName("comment")
$tracklist = $ie.FindElementByXPath("//*[contains(@id,'news-id')]")
$links = $ie.FindElementByXPath("//*[contains(@class, 'link')]")
$img = $ie.FindElementsByclassname("stars").findelementbytagname("img").getattribute("src")
 
$h = Write-Output Стиль,Формат,"Год выпуска",Размер,"Название альбома",Исполнитель,Треклист,Ссылка,Обложка
$data = ($fullstory.text).split("`n") -replace ": ","=" | Where {$_.Trim()} | Out-String | ConvertFrom-StringData | Foreach {[pscustomobject]$_} | Select $h
$data.Ссылка = $links.text
$data.Треклист = $tracklist.text
$data.Обложка = $img
$data | Export-Excel d:\filedark2.xlsx -AutoSize
Write-Host $u " - выгружено"
}
$ie.Quit()
  • Вопрос задан
  • 247 просмотров
Пригласить эксперта
Ответы на вопрос 2
@azarij
В меру опытный никто
возможно, всем будет проще если вы воспользуетесь одним из этих сервисов?

www.hongkiat.com/blog/web-scraping-tools
Ответ написан
Комментировать
@denilenko
Формируйте в цикле многомерный массив с нужными данными, а уже потом, одной строкой вставляйте его в Excel (гляньте еще раз тот код, что я вам в прошлом вашем вопросе скидывал).
Это кстати будет чуть ли не на порядок быстрее, чем в цикле на каждой итерации обращаться к Excel'ю.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы