Get-WwwString, Get-Translation

Сегодня запощу пару полезных функций работающих с System.Net.WebClient (.Net)

Аналог «wget $url -O -«:

function Get-WwwString ([string]$url, [string]$Encoding="utf-8"){
	$wc = new-object System.Net.WebClient
	$wc.Encoding = [System.Text.Encoding]::GetEncoding($Encoding)
	$wc.DownloadString($url)
}

Скачивает текст с выданного ей урла, применений — туча, например следующий скрипт:

function Get-Translation ([string]$word){
	$u="http://lingvo.yandex.ru/en?text="+$word.replace(" ","+")
	$d=Get-WwwString ([System.Uri]::EscapeUriString($u))
	if($d -match "<span>.+?</span><div>(.+?)</div>")
	{$matches[1].split(",")|%{$_.trim()}}
}

Он конечно не очень понятно и прямо написан…🙂 Но свою работу пока выполняет🙂 Он парсит страничку lingvo.yandex.ru с переводом заданного слова и выдаёт несколько основных вариантов перевода (те что справа, вверху) в виде массива.

PS L:\PowerShell> Get-Translation test
проверка
испытание
тест

И обратно:

PS L:\PowerShell> Get-Translation корабль
ship
vessel
nave

PS: гад lj зачемто начал обрабатывать теги из моего регекспа, подлец🙂 Короче поправил уже, если кто-то успел скопипастить неправильный скрипт — обновите🙂

Опубликовано в PowerShell. 6 комментариев »

комментариев 6 to “Get-WwwString, Get-Translation”

  1. Get-TinyURL « PowerShell и другие скрипты Says:

    […] Для загрузки страницы из интернета она использует другую мою функцию — Get-WwwString. […]

  2. PowerShell и другие скрипты : Get-TinyURL Says:

    […] из интернета она использует другую мою функцию — Get-WwwString. Читать […]

  3. Roman Says:

    Пробовал выше размещенные функции в работе — не работают (28 ноября 2008 года). Вопрос, а выборка регистрозависима?
    Get-Translation test
    Get-Translation TEST
    Get-Translation TeSt
    Дадут одинаковый результат?

  4. Xaegr Says:

    Поправил функцию, но опять же она будет работать до тех пор пока у яндекса ничего не изменится в дизайне🙂
    Результат будет один и тот же — какой и на странице яндекса🙂

  5. Roman Says:

    Спасибо огромное!

  6. Выдираем ссылки из вебстранички « PowerShell и другие скрипты Says:

    […] Выдираем ссылки из вебстранички Рубрика: 2.0, Learn, PowerShell, Scripting — Метки: Regular Expressions — Xaegr @ 17:09 Для большинства случаев использования регулярных выражений в PowerShell применяются операторы -match, -replace, и командлет Select-String. Но иногда их возможностей недостаточно, и тогда на помощь приходит класс [regex] принося всю мощь регулярных выражений .Net Одно из самых простых его применений – выборка из куска текста нескольких вхождений одного выражения. Для примера – достанем ссылки из кода вебстраницы. Сразу замечу что выражение определяющее url не точное, но в большинстве случаев его будет более чем достаточно. Итак, для начала объявим функцию для загрузки кода веб-страницы (это обновлённая версия Get-WWWString): […]


Обсуждение закрыто.

%d такие блоггеры, как: