PowerShellを使用して任意のWebページからリンクを抽出する方法
PowerShell 3には、強力なWeb関連の強力な新機能など、多数の新機能があります。これらはウェブの自動化を劇的に単純化します、そして今日我々はあなたがウェブページからすべての単一のリンクを抽出する方法をあなたに示すつもりです、そしてあなたが望むなら必要に応じてリソースをダウンロードします.
PowerShellを使用してWebをスクラップする
Webの自動化を容易にする2つの新しいコマンドレット、人間が読めるコンテンツの解析を容易にするInvoke-WebRequest、および機械が読めるコンテンツを読みやすくするInvoke-RestMethodがあります。リンクはページのHTMLの一部なので、人間が読めるものの一部です。 Webページを取得するために必要なことは、Invoke-WebRequestを使用してURLを指定することだけです。.
Invoke-WebRequest -Uri 'http://howtogeek.com'
下にスクロールすると、レスポンスにlinksプロパティがあることがわかります。これらを除外するために、PowerShell 3の新しいメンバ列挙機能を使用できます。.
(Invoke-WebRequest -Uri 'http://howtogeek.com').Links
お分かりのように、たくさんのリンクが戻ってきますが、ここであなたが探しているリンクを除外するためのユニークなものを見つけるためにあなたの想像力を使う必要があります。フロントページにすべての記事のリストが欲しいとしましょう。.
((Invoke-WebRequest -Uri 'http://howtogeek.com').Links | Where-Object $ _。href -like“ http *” | Whereクラス-eq“ title”)。タイトル
新しいコマンドレットを使用してできるもう1つの優れた点は、毎日のダウンロードを自動化することです。 Nat Geo Webサイトから当日の画像を自動的に削除する方法を見てみましょう。これを行うには、新しいWebコマンドレットとStart-BitsTransferを組み合わせます。.
$ IOTD =((Invoke-WebRequest -Uri 'http://photography.nationalgeographic.com/photography/photo-of-the-day/').Links | where innerHTMLのような「*ダウンロード*」)。
Start-BitsTransfer -Source $ IOTD -Destination C:\ IOTD \
それだけです。あなた自身のきちんとしたトリックがありますか?コメント欄でお知らせください.