最近MENTAでPythonのrequestsでスクレイピングしたURLから画像や動画を実際にダウンロードするにはどうすればよいか、みたいな質問をよくいただくのでこの記事にまとめておこうと思います。
画像や動画をローカルのPCに出力・ダウンロードして保存する処理のはrequestsのレスポンスのcontentをそのままwith文とopen関数と.writeで書き出すだけなので案外シンプルに実装できます。
以下にサンプルコードを記載します
requestsで動画ファイルをローカルに書き出す
処理の流れとしてはウェブサイトのHTMLをスクレイピングするのとほとんど変わらないのでrequestsでそのまま実装できます。動画ファイルをダウンロードする流れは具体的には以下のような感じ。注意点はrequests.getで叩くURLの末尾が.mp4みたいな動画ファイルの末尾になっているかです。
<サンプルコード>
import requests response = requests.get('https://video.twimg.com/ext_tw_video/1480552833988829194/pu/vid/480x360/u2jXyMRG-8zYb4IX.mp4?tag=12') with open(f'sample.mp4', 'wb') as saveFile: saveFile.write(response.content)
requestsで画像ファイルをローカルに書き出す
実際に適当な画像をPythonでrequestsを使ってダウンロードしてみます。
使うのは↓の画像になります。
URL:https://tkstock.site/wp-content/uploads/2021/09/line-delete-account-00.jpg
import requests response = requests.get('https://tkstock.site/wp-content/uploads/2021/09/line-delete-account-00.jpg') with open(f'sample.jpg', 'wb') as saveFile: saveFile.write(response.content)
こちらも動画ファイルと同じようにrequests.getで叩くURLの末尾が.jpgみたいな画像ファイルの末尾になっているかに注意してください。
またopen関数で指定するファイル名は実行した時点でプログラムを実行したディレクトリの直下に新規作成されるので、存在しないもので大丈夫です。ダウンロード先のディレクトリまで指定したい場合はr’/xxxx/xxxx/sample.jpg’みたいな感じで書けばよいです。
コメント
[…] 関連記事:【Python】requestsで画像・動画ファイルをスクレイピングしてダウンロードするサンプルプログラム […]