愚かなオタクのトリック:powershellを使用して任意のWebページからリンクを抽出する

PowerShell 3には、強力な新しいWeb関連機能を含む多くの新機能があります。彼らはWebの自動化を劇的に簡素化しました。今日は、Webページからすべての単一リンクを抽出し、必要に応じてリソースをダウンロードする方法を紹介します。

Webの自動化を容易にする2つの新しいコマンドレット、人間が読み取り可能なコンテンツの解析を容易にするInvoke-WebRequest、機械可読コンテンツの読み込みを容易にするInvoke-RestMethodがあります。リンクはページのHTMLの一部であるため、人間が読めるものの一部です。 Webページを取得するために必要なのは、Invoke-WebRequestを使用してURLを付けることだけです。

Invoke-WebRequest -Uri ‘http://howtogeek.com’

下にスクロールすると、レスポンスにリンクプロパティがあることがわかります。PowerShell 3の新しいメンバー列挙機能を使用してこれらをフィルタリングできます。

(Invoke-WebRequest -Uri ‘http://howtogeek.com’).Links

あなたはあなたがあなたが探しているリンクを除外するためにユニークな何かを見つけるためにあなたの想像力を使用する必要があるところで多くのリンクバックを見ることがわかります。フロントページにすべての記事のリストが必要だとします。

(Invoke-WebRequest -Uri ‘http://howtogeek.com’).Links | Where-Object {$ _。href -like “http *”} | class -eq “title”)。タイトル

新しいコマンドレットでできることは、毎日のダウンロードを自動化することです。 Nat GeoのWebサイトから、その日の画像を自動的にスクラップして、新しいWebコマンドレットとStart-BitsTransferを組み合わせてみましょう。

$ IOTD =((Invoke-WebRequest -Uri ‘http://photography.nationalgeographic.com/photography/photo-of-the-day/’).Links | innerHTMLのような “* Wallpaper *のダウンロード”).href;開始ビット転送 – ソース$ IOTD – 宛先C:\ IOTD \

それはすべてそれにある。あなた自身のすてきなテクニックはありますか?コメントでお知らせください。

PowerShellは非常に強力なツールです。

私はWindows 7のulitmateで両方のバージョンのPowerShellで試してみましたが、動作しませんでした。それは私に以下のようなメッセージを与える

PS C:\ Users \ User> Invoke-WebRequest -Uri `http://howtogeek.com ‘;「Invoke-WebRequest」という用語は、コマンドレット、関数、スクリプトファイル、または実行可能なプログラムの名前として認識されません。名前の綴りを確認するか、パスが含まれている場合は、パスが正しいことを確認して、もう一度やり直してください:; 1行目:18; + Invoke-WebRequest <<<< -Uri `http:// howtogeek。 com; + CategoryInfo:ObjectNotFound:(Invoke-WebRequest:String)[]、CommandNotFoundException; + FullyQualifiedErrorId:CommandNotFoundException 本当に素晴らしい記事です;私はそれを使って画面上のすべてのHTML入力フィールドのリストを取得します。ただし、フィールドを追加するためにJavascriptが使用されている場合、それは含まれません。また、ページが別のURLにリダイレクトされた場合、Invoke-WebRequestは最終的なHTMLページを取得しません;リダイレクトとJavascriptフィールドが適用された後に最終HTMLを取得する方法はありますか? Taylor、このチュートリアルで使用している透過的なWindowsのテーマは何ですか?どこから取得しましたか? 前もって感謝します! @バートンは、実際にはWindows 8のデフォルトのテーマ:) @他の人は、これにはPowerShell 3が必要です。コマンドレットが存在しないというエラーが発生した場合は、最新バージョンのPoSHをダウンロードしてください。 @テイラー:それを有効にする方法?私は不透明な背景と太い輪郭(Win8 RTM)を持つものだけを持っています。私はこれがWin8 RPの一部だと思います、そうですか?ディスカッションを申し訳ありません... 鳩は保護区域で高くなり、赤ちゃんは大人とほぼ同じ大きさになるまで巣を離れることはないので、赤ちゃんのハトは見たことがない可能性があります。