Instagramは写真共有で有名なSNSですが、今後は動画共有のプラットフォームに移行しています。トップランキングの写真を見ることで、より良い写真素材を集めることができます。
この章では、ハッシュタグとPythonを使用してトップランキングの写真をダウンロードして保存する方法を共有したいと思います。この記事の終わりまでに、必要なモジュールとPythonのメソッドを学び、数分で何百枚もの写真をすぐにダウンロードすることができます。
目次:PythonとOSを使用してInstagramの写真スクレイパーを構築してソーシャル写真を取得する
- SeleniumモジュールをインポートしてInstagramアカウントにログイン
- Instagramの写真パスを検索して取得する
- OSモジュールをインポート
- Pythonのメソッド:
getcwd()、join()およびmkdir()
[wget
モジュールのインポート、写真をダウンロードしてコンピュータに保存する]- Instagram写真スクレイパーの完全なPythonスクリプト
Instagram写真スクレイパー – SeleniumモジュールをインポートしてInstagramアカウントにログイン
以前のInstagramスクレイパー記事でも、seleniumモジュールを使用しました。WebドライバーをインポートしてInstagramアカウントにログインするために使用されます。このセクションの詳細については、これらの記事のいずれかを参照してください。
Instagram写真スクレイパー – Instagram写真パスを検索して取得する
ハッシュタグの結果から投稿画像の1つを右クリックし、Chromeで検査することができます。以下のスクリーンキャプチャからわかるように、任意の写真はimg
というタグで名前が付けられています。
新しい変数images
を作成しました。その後、seleniumの引数を利用して、このパス内のすべての写真をロックすることができます。
images = driver.find_elements_by_tag_name('img')
写真をダウンロードするために、最初にすべての写真URLを見つける必要があります。したがって、画像の引数とget_attribute()
を使用する必要があります。スクリーンキャプチャからわかるように、属性値は“src”
です。
images = [image.get_attribute('src') for image in images]
OSモジュールをインポート
PythonのOSモジュールは、オペレーティングシステムとの対話に関する関数を提供します。OSはPythonの標準ユーティリティモジュールに含まれます。このモジュールは、オペレーティングシステム依存の機能を使用するポータブルな方法を提供します。osおよびos pathモジュールには、ファイルシステムとのやり取りに多くの関数が含まれています。
今度は写真をダウンロードして、ラップトップに保存する必要があります。新しいフォルダーを作成して、写真をフォルダーに保存し、2つのものを組み合わせるためにOSをインポートする必要があります。
import os
オペレーティングシステムとの対話のPythonメソッド – getcwd()、join()およびmkdir()
Pythonメソッドgetcwd()
は、プロセスの現在の作業ディレクトリを返します。つまり、Pythonスクリプトがラップトップの1つのディレクトリにある場合、このコードラインは、写真もこのディレクトリに保存されることを示します。
path = os.getcwd()
join()
メソッドは、文字列メソッドであり、シーケンスの要素がstr区切り文字で結合された文字列を返します。
path = os.path.join(path, query)
クエリは、お好きなハッシュタグキーワードを設定できます。このコードラインは、これでパスで使用できるハッシュタグ名を表します。
Pythonのos.mkdir()
メソッドは、指定された数値モードでパスという名前のディレクトリを作成するために使用されます。新しいディレクトリは、さきほど設定したクエリまたはハッシュタグ名で名前が付けられています。
os.mkdir(path)
wget
モジュールをインポートして、コンピュータに写真をダウンロードして保存する
wgetコマンドは、インタラクティブでないユーティリティで、インターネットからリモートファイルをダウンロードするためのものです。Unixベースのオペレーティングシステムに組み込まれています。HTTP、HTTPS、FTPプロトコルをサポートし、HTTPプロキシを介して取得することもできます。
wgetをインポート
Instagramのハッシュタグには多くの写真があるため、写真の命名が重要です。そうしないと、写真が1つずつ置換されてしまいます。結局、1枚の写真しか取得できなくなり、時間が無駄になります。
これを解決するには、値0の新しい変数を作成する必要があります。
Number = 0
次に、ループを作成して、写真をダウンロードし、ユニークな名前でそれぞれの写真を保存する必要があります。wget
をインポートしたので、download()
メソッドを使用して写真を指定したパスに保存することができます。最後に、ループ中にPythonに変数番号が1つずつ追加されることを忘れずに伝えてください。
Instagramの写真スクレイパー作成に使う完全バージョンのPythonスクリプト
もしインPythonとOSを使用してInstagramの写真スクレイパーを構築してソーシャル写真を取得するが興味があったら、”Python4 Instagramの写真スクレイパー”を追加してニュースレターをご申し込みください。申し込みを受け取り次第、すぐにおスクリプトを添付してお送りします。
PythonとOSを使用してInstagramの写真スクレイパーを構築してソーシャル写真を取得するという文章を読むタイムに楽しんでいただければ嬉しいです。もしできれば、以下の選択中には一つ、二つを選んでEasy2Digitalチャネルを応援したら、誠にありがとうございます。
- 幾つでもいい、PayPalを通して寄付してください。(paypal.me/Easy2digital)
- Easy2DigitalのYoutubeチャネルを登録してください。(Easy2Digital Youtube channel.)
- #easy2digitalのハッシュタグを付けてソーシャルネットワークでこの文章をシェアしてください
- Easy2Digitalコンテンツの更新と注文割引コードを受け取るように、ニュースレターをご申し込みください