インスタグラムボット作成:ハッシュタグを利用する投稿とユーザーデータスクレイピングに使います
ビジネスマンとか、投資家とか、マーケッターとかとしては最新市場情報と潜在パートナーを了解するように、ソーシャルメデイアでいろいろな流行って人気な知識とか、コンテンツなんてを習得しずにはいられません。えと、インスタグラムがもちろん一番適合的なところの一つに決まっているんです。でも、そのプロセスがあまり時間をかかりすぎるので、ただ手動でこれらを完成したら、ちょっと無理だと思いますね。
だから、どうやって自動的で手軽にスクレイプできますかの質問をこの文章で答えてやってみます。例を挙げば、ハッシュタグを利用して指定したインフルエンサーの投稿とユーザのデータをスクレイプできるインスタグラムボットを作成する
ビジネスマンとか、投資家とか、マーケッターとかとしては最新市場情報と潜在パートナーを了解するように、ソーシャルメデイアでいろいろな流行って人気な知識とか、コンテンツなんてを習得しずにはいられません。えと、インスタグラムがもちろん一番適合的なところの一つに決まっているんです。でも、そのプロセスがあまり時間をかかりすぎるので、ただ手動でこれらを完成したら、ちょっと無理だと思いますね。
だから、どうやって自動的で手軽にスクレイプできますかの質問をこの文章で答えてやってみます。例を挙げば、ハッシュタグを利用して指定したインフルエンサーの投稿とユーザのデータをスクレイプできるインスタグラムボットを作成する。以下はここの作成したインスタラムボットで丁寧的なデータタイプスクレイピング能力でございます:
- 投稿に属するポストインク、コンテンツと写真
- ポスト表現のデータ(コメント、いいね、シェアの数量データ)
- フォローユーザのコメント内容とユーザーのプロフィールデータ(名前、リンク)
- ポスト投稿のユーザー名前とユーザープロフィールリンク
インスタグラムボット作成記事のセクション
- SeleniumとChromeDriverをインストール
- ボット使用でインスタグラムアカウントを登録
- 特定の要素を選んで自動的にクリック
- ハッシュタグで特定の投稿を検索ともっと投稿をスクロール
- 特定の要素をスクレイプするとCSVファイルにデータを保存する
- インスタグラムボット作成に使う完全バージョンのPythonスクリプト
インスタグラムボット:SeleniumとChromeDriverをインストールする
Selenium
Seleniumとは無料な自動化フレームワークが様々なブラウザとプラットフォームでウェブアプリケーションを検証するために使用されるというオープンソースのソフトウェアです。そして、もしSeleniumテストのスクリプトを作成したら、いろいろなプログラミング言語で使いできます。例えば、Java, C#, Pythonなど。この文章では、Pythonを利用してインスタグラムボットを作成する例を挙げます。もしみんなさんのパソコンにPythonインストールについてのことを了解したくとしたら、以下の文章をご参考ください。
Chapter 1 – Ways to Install and Set up Python Environment in MacBook OS
マックブックを例えば、手軽にインストールできますよ。パソコンのターミナルに以下のコードを入力してもいいです。
pip3 install selenium
ChromeDriver
さって、みんなさんの仕事を代わりに、一つのバーチャルブラウザが必要です。ここの文章ではChromedriverをお勧めします。ChromedriverとはバーチャルChromeブラウザということです。
まずに、グーグルにChromedriverを検索してこのソフトウェアをダウンロードしてインストールして行きます。
普段には二つの選択を提供されています:ベータと標準バージョンがあります。ベータバージョンがさらに効能があるかも、でも、一般的にはもっと安定した標準バージョウを選んでお勧めします。えと、みんなさんの自分デバイスに基づいて、マックまたはWindowを選びます。では、ダウンロードした後で、zipファイルを解凍してデバイスにインストールしてこのプロセスを基本的に完成されました。Chromedriverの保存位置をコピーすることを覚えておいてください。後ほどこれが必要です。
最後に、インスタグラムボットスクリプトに必要なプログラミングモジュールを加えてください。以下は丁寧なモジュールでございます:Selenium, Pandas, Time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
import pandas as pd
import time
さっきにコピーしたのChromedriverの保存位置が以下みたい新しい変数においてください。
driver = webdriver.Chrome(executable_path='/louis/Desktop/Python/chromedriver')
インスタグラムボット:ボット使用でインスタグラムアカウントを登録する
Seleniumが基本的にウェブサイトを訪問する人間活動を真似しますね。まずには、インスタラムアカウントを登録することです。インスタラム登録と言えば、三つのことがしなければならない。名前、パスワードも入力して登録ボタンをクリックするんです。それで、これらのHTML要素たちがサイトで指定位置を確認すにはいられません。
写真によって、指定要素位置が<input name=”username”>
、<input name=”password”>
の二つです。スクリプトにBy.CSS_SELECTOR
を使って命令されたボットが両方の位置へ行きます。
入力する前にこのボックスをクリックする必要ですから。その動作を真似するために、element_to_be_clickableを使ってもいいです。それで、以下は全てのアクションを完成するコードでございます:
username = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"input[name='username']")))
password = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"input[name='password']")))
今が二つのボックスに名前とパスワードのデータを送る時間です。Seleniumで指定位置にデータを送る方法がsend_keysを利用してもいいです。
username.send_keys("あなたの登録メール")
password.send_keys("*あなたの登録パスワード")
最後は登録ボタンをクリックしてアカウントを登録するんです。click()
という方法を利用するはずです。
log_in = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"button[type='submit']"))).click()
インスタグラムボット:特定の要素を選んで自動的にクリック
インスタグラムスクレイピングのプロセスがデスクデバイスを使いますから、登録したところで、他の二つの安全性に関するの質問があります。答えが直接ですから、以下のコードを使ったら『現在は要らない』を選択して、解決できます。
not_now = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//button[contains(text(),'Not Now')]"))).click()
not_now2 = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//button[contains(text(),'Not Now')]"))).click()
ハッシュタグで特定の投稿を検索ともっと投稿をスクロールする
インスタグラムがハッシュタグで指定ポストコンテンツ検索に使う固定サイトリンクが提供されます、以下でございます:
https://www.instagram.com/explore/tags/ + keyword
それで、Pythonスクリピドに検索リンクプラスキーワード変数という新変数を加えます。
query = "moussy"
page = driver.get("https://www.instagram.com/explore/tags/" + query)
キーワードを検索次第に、インスタグラムから提供されるポストコンテンツ結果は全てのではありません。最初には20本のポストしかありません。もしもっと結果をみえたくとしたら、ページを下にスクロールして続けずには要られません。それで、この動作を真似できるボットを作成したら、以下の二つSelenium方法を加えてからてないと、全然ダメですから。
window.scrollBy ()
とはボットがページ移動方向を操作する命令というSelenium方法です。方法の中に二つの引数値が入力させてもいいです。実はxとyという座標数値です。
time.sleep()
とはボットが休憩タイム設置という命令です。止まらないスクロールを設置たしとしたら、インスタグラムがそんな不審な動作を探知して禁止するんです。しかも、たとえ禁止されなければ、早すぎスクロールをしたとしたら、全てのポストデータをスクレイピングできないが可能性があります。
driver.execute_script("window.scrollBy(0,1000000)")
time.sleep(5)
driver.execute_script("window.scrollBy(0,1000000)")
time.sleep(5)
driver.execute_script("window.scrollBy(0,1000000)")
time.sleep(5)
特定の要素をスクレイプするとCSVファイルにデータを保存する
データスクレイピングが特定の要素を選んでもいいですよう。Selenium在庫方法中で二つの方法をお勧めします。
find_elements_by_tag_name()
get_attribute()
このケースを例えば、スクレイプしたデータ中にリンクが含みます。それらのリンクが大変役に立つんです、人気なユーザープロフィールのデータをスクレイプしたくとしたら、ぜひ必要な材料ですよ。それで、以下はポストからリンクをスクレイプするコードでございます。
links = driver.find_elements_by_tag_name('a')
links = [link.get_attribute('href') for link in links]
最後はどこに全部のデータを保存するか考える必要です。このケースではPandasを利用してデータを保存するんです。
df = pd.DataFrame(links,columns=["InstagramPostLink"])
df.to_csv('uniqlojapan.csv')
インスタグラムボット作成に使う完全バージョンのPythonスクリプト
もしインスタグラムボットの完全バージョンPythonスクリプトが興味があったら、”Python 1 + インスタグラムボット”を追加してニュースレターをご申し込みください。申し込みを受け取り次第、すぐにおスクリプトを添付してお送りします。
インスタグラムボット作成:ハッシュタグを利用する投稿とユーザーデータスクレイピングに使いますという文章を読むタイムに楽しんでいただければ嬉しいです。もしできれば、以下の選択中には一つ、二つを選んでEasy2Digitalチャネルを応援したら、誠にありがとうございます。
- 幾つでもいい、PayPalを通して寄付してください。(paypal.me/Easy2digital)
- Easy2DigitalのYoutubeチャネルを登録してください。(Easy2Digital Youtube channel.)
- #easy2digitalのハッシュタグを付けてソーシャルネットワークでこの文章をシェアしてください
- Easy2Digitalコンテンツの更新と注文割引コードを受け取るように、ニュースレターをご申し込みください