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 комментариев »