2

私のPinterestフィードはRSSタイトルを20文字に切り捨てており、説明の最後にある「imgsrc」と長いテキストを解析する必要があります。

私の非常に単純なコードは機能しますが、新しいタイトルに「なぜあなたは#Elevator#Pitch-#marketingを持っているのか」と言う方法がわかりません。

$feed = [xml](New-Object System.Net.WebClient).DownloadString('http://pinterest.com/bigoals365/feed.rss')

$feed.rss.channel.Item  | select title, link, description | Out-GridView

Invoke-WebRequestも試しましたが、これは基本的な検索では機能しますが、説明の解析に困惑しています。

私のフィードは次のようになります(RSSの1行):

<item><title>Why You’ve Got to Ha</title><link>http://pinterest.com/pin/329888741425045427/</link> <description> &lt;p&gt;&lt;a href="http://pinterest.com/pin/329888741425045427/"&gt;&lt; img src="http://media-cache-lt0.pinterest.com/192x/bd/5e/7c/bd5e7cd628c21313d835a4e5c89d28ee.jpg"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt; Why You’ve Got to Have an #Elevator #Pitch - #marketing&lt;/p&gt; </description> <pubDate>Wed, 06 Mar 2013 21:59:55 +0000</pubDate><guid>http://pinterest.com/pin/329888741425045427/ </guid></item>

どんな助けでも大歓迎です!

4

2 に答える 2

1

おそらくこのように?

$feed.rss.channel.item | %{ 
   if ($_.description -match '.*<img src="([^"]+)".*<p>(.*)</p>') { 
      $_.title = $matches[2];
      $_.link = $matches[1] 
   } 
   $_ 
} | select title, link, description | Out-GridView

お役に立てれば

/フレドリック

于 2013-03-07T07:07:47.227 に答える
0

これがあなたが探しているものだと思います

$feed.rss.channel.Item | 
    select -Property link, description, @{
        n = 'title'
        e = {[regex]::Matches($_.description, '<p>(.+?)</p>')[1].Groups[1].Value}
     } | ogv

これは、n(名前)キーとe(式)キーを持つハッシュテーブルを使用して、カスタムプロパティを作成します。

于 2013-03-07T07:05:16.307 に答える