#環境
OS : Windows10 professional,
#経緯
一昨日Powershellを知り、インストラクションのサイトなど
https://adamtheautomator.com/powershell-download-file/#Using_Invoke-WebRequest_as_a_PowerShell_wget_Alternative
https://www.itprotoday.com/powershell/powershell-contains
を見て自習、
下記のようなコードを
xxx.ps1
で保存した。
Param( $url ) $page = Invoke-WebRequest $url foreach($linkElement in $page.Links.href) { $fileName = Split-Path $linkElement -Leaf $extension = [IO.Path]::GetExtension($fileName) if ( $extension -eq ".jpg" -or $extension -eq ".jpeg" -or $extension -eq ".png" -or $extension -eq ".webp") { Invoke-WebRequest $linkElement -OutFile $fileName } }
Powershell を起動し、下記をPowershell に直接記述して、上述xxx.ps1を起動した。
.\xxx.ps1 http://www.xxxxx.ne.jp/xxxx/
(上記サイトは自分の仕事上のサイトです。)
これで上記のわたくしのサイトの、指定ページから画像ファイルを漏れなく
cd
にダウンロードできた。
#問題点
ところが、自分が世話をしている別のSNSサイトから複数画像をダウンロードしようと試みましたが、全くうまくいきません。
たぶん、このサイトのページURLは、一例として;
http://www.chainsawcollectors.se/phpbb3/viewtopic.php?p=266258#p266258
このサイトの、上記一例の中の、画像ファイルひとつは;
http://www.chainsawcollectors.se/phpbb3/download/file.php?id=144013&mode=view
という表記になっていて、
.jpg
ではないからだと推察しました。
このサイトの画像には
view
が接尾辞になっているようなので、それをターゲットにしてみました。
そこで次のコードをテストしました。
テストしたコード:
Param
1Invoke-WebRequest $url -Credential $credential 2foreach($linkElement in $page.Links.href) { 3$fileName = Split-Path $linkElement -Leaf 4if ( $fileName -like "view" ) { 5Invoke-WebRequest $linkElement -OutFile $fileName 6} 7}
このSNSサイトはログインが必要です。これはクリアできました。
でも、画像はダウンロードできません。
こういうSNSサイトに対してはどのように処理するのでしょうか?
ご教示よろしくお願いします。
あなたの回答
tips
プレビュー