python PR

pythonでtwitterをスクレイピングする方法【サンプルコードあり】

Pythonでtwitterをスクレイピング
記事内に商品プロモーションを含む場合があります

twitterではスクレイピングを行うことを禁止しているため、スクレイピングをすることはあまりおすすめしません

しかし、pythonを使うことで、スクレイピングが禁止であるtwitterからスクレイピングと同じように情報を収集することが可能です

この記事では、pythonでtwitterからスクレイピング以外の方法で情報を収集するやり方を解説していきたいと思います

pythonでtwitterからツイートを取得したい

twitter APIの準備がめんどくさい

取得したツイートを解析してみたい

といった方に向けて、書いていきます!

以下の記事では、pythonでtwitterを使う方法をまとめて解説しているので、参考にしてみてください

pythonでtwitterを使ってみよう

pythonでtwitterを扱えるようになると、twitterで行われている懸賞に自動で応募することができるようになります

コピペでOK!アフタフォロー付きのtwitter懸賞自動化コード

また、twitterアフィリエイトを自動化することもできます

コピペでOK!pythonを使ってtwitterアフィリエイトを自動化しよう

2023/5月に追記を行いました。Pythonを使ってTwitter APIを使わずに、Twitterをスクレイピングする方法を掲載しています

pythonでtwitterをスクレイピングする方法

pythonでtwitterを使う

twitterの規約ではスクレイピングを行うことは禁止されていますので、それ以外の方法でtwitterから情報を収集していきたいと思います

今回使用するのは「twint」と呼ばれるライブラリを使用していきます

twintを使用することで、以下のことが可能です

  • 特定アカウントのツイートを取得
  • 特定のトピックやハッシュタグ、トレンドに関連したツイートの取得
  • メールや電話番号などの情報をツイートから取得

twitter APIを使用すれば、上記のことは可能ですが、APIの認証を取るまでが大変です

pythonでtwitter APIを使用する方法
pythonでtwitter APIを取得する方法【全18枚の図解+例文あり】twitterのAPI取得は年々厳しくなってきています。今回は筆者が2022年にpythonでtwitter APIを取得するために行なった方法を図解+例文つきで紹介していきます。pythonでtwitterを利用する際には、twitter APIの取得が必須になるので、参考にしてください。...

twintでできないこと

twintではbotの作成や自動いいね、リツイートなどは行うことができないので、twitter APIの取得が必要になります

twitter botを作成したい方は、pythonでtwitter botを作成する方法を以下の記事で解説しているので、そちらを参考にしてください

python twitter bot
pythonでtwitter botを作成してみよう【サンプルコードあり】これまでの記事でpythonでtwitter APIを使った活用方法などを紹介してきました。今回はpythonを使ってtwitter botを作成していきたいと思います。 定期的にツイートするtwitter botやリアルタイムに応答するtwitter botをサンプルコードを交えつつ解説していきます。...

twintのメリット

twintとtwitter APIを比較すると、

  • ほぼ全てのツイートを取得可能(twitter APIではmax3200ツイートまで)
  • 初期設定が楽
  • 匿名利用可能
  • twitter未登録でも可能

twintのインストール

twintをインストールするには、ターミナル上で以下のコマンドを入力します

pip install twint

エラーが出た場合には、以下のように入力していきます

pip install --user --upgrade git+https://github.com/twintproject/twint.git@origin/master#egg=twint

上記コマンドを入力して、以下のように出力されればOKです

Successfully installed aiodns-2.0.0 aiohttp-3.7.4.post0 aiohttp-socks-0.6.0 async-timeout-3.0.1 
cchardet-2.1.7 dataclasses-0.8 elasticsearch-7.11.0 geographiclib-1.50 geopy-2.1.0 googletransx-2.4.2 
idna-ssl-1.1.0 multidict-5.1.0 pycares-3.1.1 python-socks-1.2.2 schedule-1.0.0 twint-2.1.21 typing-3.7.4.3 yarl-1.6.3

twintでツイートを取得

コード解説

ツイートに含まれている特定のワードを検索して、ツイートを取得していきたいと思います

import twint

c = twint.Config()

c.Search = ''
c.Limit = 10  
c.Store_csv = True
c.Output = "twitter_result.csv"

twint.run.Search(c)

これで「twitter_result.csv」というファイルが作成されていればOKです

インポートがtwintだけだとエラーになる場合もあります
そういう場合には、「import nest_asyncio」を入力するとうまくいきます

ツイートの取得だけであれば、twintでOKですが「いいね」や「リツイート」「自動フォロー」などを行いたい場合には、twitter APIを取得しないといけません

twitter APIの取得は一度認証されれば、複数アカウントで使用することができるので、取得するのがおすすめです

python twitter
pythonでtwitterを使ってみよう【コピペでOKサンプルコードつき】pythonを使えばtwitter操作を自動化することができます。僕が収益を出したtwitter自動化のコードを元に、pythonでtwitterを操作する方法を解説していきます。...

twitter-API-clientを使ってtwitterをスクレイピング

2023年に登場したtwitter-API-clientを使うことで、twitterをスクレイピングすることができます(2023/5月追記)

詳しいコードは以下のnoteにまとめているので、そちらを参考にしてもらえるいいです

ここでは簡単な説明だけします

pythonを使ったtwitter自動化-twitter懸賞自動応募で0→1突破実績あり・スクレイピング対応済み-

また、スクレイピングを行う際には自己責任でお願いします

twitter-api-clientを使う

有志の方がtwitter-api-clientを開発してくれているので、そちらを使用します

pip isntall twitter-api-client

スクレイピングにはScraper

スクレイピングを行うには、Scraperを使用します

from twitter.scraper import Scraper

Scraperを使用することで、さまざまなツイートデータを取得することができ、

例えば、トレンドやいいねしているツイートなどです

キーワード検索はSearch

指定のキーワードが含まれるツイートを検索したい場合には、Searchを使用します

from twitter.search import Search

Searchの使い方は、これまでのキーワード検索方法と同じで、任意のキーワードや最低いいね数、最低リツイート数などを設定することができます

general_results = search.run('(#dogs OR #cats) min_retweets:500')

twintを使わずにtwitterから情報収集する方法

twintはAPIを取得せずに利用することができますが、

twintを使わずにtwitterから情報収集するには、APIを取得してtweepyを使用していきます

tweepyで収集することができる情報は、以下のようなものです

  • ツイートID
  • ツイート時刻
  • ツイート本文
  • いいね数
  • リツイート数
  • ID
  • ユーザー名
  • アカウント名
  • 自己紹介文
  • フォロー数
  • フォロワー数
  • アカウント作成日時
  • 自分のフォロー状況
  • アイコン画像URL
  • ヘッダー画像URL
  • WEBサイト

tweepyについて詳しい内容は、こちらの記事でまとめているので、参考にしてください

tweepyが使えれば、twitterでおこなっている事の大半は行うことができます

python twitter tweepy
pythonでtwitterが扱えるtweepyについて【サンプルコードあり】今回はpython初心者でも扱いやすい、「tweepy」について解説をしていきたいと思います。tweepyを使用すれば、twitter操作のほとんどを行うことができ、さらにbot作成まで行えます。よく使用する「いいね」や「リツイート」方法についても、サンプルコードを交えて解説をしていきます。...

tweepyを使ってtwitterの情報を収集する

以下のtwitter認証やsearch_wordを変更すれば、twitterでスクレイピングを行わずとも、twitterの情報を収集することができます

# ライブラリのインポート
import tweepy
from datetime import datetime,timezone
import pytz
import pandas as pd


# Twitterの認証
#Twitter情報。
#********には自分自身のAPIキーなどを入力してください

consumer_key        = '********'
consumer_secret     = '********'
access_token        = '********'
access_token_secret = '********'

#Twitterの認証
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

# ”wait_on_rate_limit = True” 利用制限にひっかかた時に必要時間待機する
api=tweepy.API(auth,wait_on_rate_limit=True)

# 検索条件の設定
search_word = 'ブログ初心者 min_faves:200'
#何件のツイートを取得するか
item_number = 150

#検索条件を元にツイートを抽出
tweets = tweepy.Cursor(api.search_tweets,q=search_word, tweet_mode='extended',result_type="mixed",lang='ja').items(item_number)

#関数: UTCをJSTに変換する
def change_time_JST(u_time):
    #イギリスのtimezoneを設定するために再定義する
    utc_time = datetime(u_time.year, u_time.month,u_time.day, \
    u_time.hour,u_time.minute,u_time.second, tzinfo=timezone.utc)
    #タイムゾーンを日本時刻に変換
    jst_time = utc_time.astimezone(pytz.timezone("Asia/Tokyo"))
    # 文字列で返す
    str_time = jst_time.strftime("%Y-%m-%d_%H:%M:%S")
    return str_time

#抽出したデータから必要な情報を取り出す
#取得したツイートを一つずつ取り出して必要な情報をtweet_dataに格納する
tw_data = []

for tweet in tweets:
    #ツイート時刻とユーザのアカウント作成時刻を日本時刻にする
    tweet_time = change_time_JST(tweet.created_at)
    create_account_time = change_time_JST(tweet.user.created_at)
    #tweet_dataの配列に取得したい情報を入れていく
    tw_data.append([
        tweet.id,
        tweet_time,
        tweet.full_text,
        tweet.favorite_count, 
        tweet.retweet_count, 
        tweet.user.id, 
        tweet.user.screen_name,
        tweet.user.name,
        tweet.user.description,
        tweet.user.friends_count,
        tweet.user.followers_count,
        create_account_time,
        tweet.user.following,
        tweet.user.profile_image_url,
        tweet.user.profile_background_image_url,
        tweet.user.url
                       ])

#取り出したデータをpandasのDataFrameに変換
#CSVファイルに出力するときの列の名前を定義
labels=[
    'ツイートID',
    'ツイート時刻',
    'ツイート本文',
    'いいね数',
    'リツイート数',
    'ID',
    'ユーザー名',
    'アカウント名',
    '自己紹介文',
    'フォロー数',
    'フォロワー数',
    'アカウント作成日時',
    '自分のフォロー状況',
    'アイコン画像URL',
    'ヘッダー画像URL',
    'WEBサイト'
    ]

#tw_dataのリストをpandasのDataFrameに変換
df = pd.DataFrame(tw_data,columns=labels)

#CSVファイルに出力する
#CSVファイルの名前を決める
file_name='tw_data.csv'

#CSVファイルを出力する
df.to_csv(file_name,encoding='utf-8-sig',index=False)

tweepyの検索・取得のオプション

search_wordの後ろにオプションを付け加えることができます

検索キーワード説明
キーワード -除外するキーワード-の後に続くキーワードを除外して検索
キーワード min_faves:100いいねの数が100以上のツイートだけ
キーワード min_retweets:100100リツイート以上のツイートを検索
from:ユーザーネーム特定のユーザーのツイートを検索
キーワード1 OR キーワード2ブログもしくはブロガーのキーワードを検索
“キーワード”” “で囲われた文字列に完全一致するツイートを検索

pythonのスキルを高める方法

python スクール

pythonのスキルを高めるには、pythonを学べるプログラミングスクールに通うのが一つの方法です

おすすめプログラミングスクール(無料体験あり)

こちらの記事では、pythonが学べて、無料体験できるおすすめのプログラミングスクールを紹介しているので、ぜひ参考にしてみてください

これから先、pythonを使える社会人は重宝される時代が来るので、今のうちに学んでおくと、社会に出た時に有利に働きます

スクールに通おうか、pythonを学ぼうか、どうしようか迷っているなら行動した方がいいです

僕は行動した結果、python関連で収益5桁いくようになりました

行動しなければ収益は0のままです

python プログラミングスクール
pythonを学ぶのにおすすめプログラミングスクールTOP5「pythonを学ぶのに、プログラミングスクールに通いたい」「pythonを学べるプログラミングスクールがたくさんあって、よくわからない」「結局、pythonを学ぶのにおすすめのプログラミングスクールってどこなの?」といった疑問をお持ちの方に、pythonを学ぶのにおすすめのプログラミングスクールを紹介していきたいと思います。...
おすすめプログラミングスクール

DMMWEBCAMP
  • WEBCAMPはコスパ最強
  • WEBCAMPは初心者に優しい充実したサポート付き
  • 16週間プランを選択して、返金してもらおう
WEBCAMPの公式ページはこちら WEBCAMPの口コミ・評価はこちら
テックアカデミー  
  • テックアカデミーは費用対効果抜群
  • テックアカデミーのサポートは個人の能力に応じつつ、python初心者に優しい
  • まずは無料体験でテックアカデミーを知ってから受講を決める
テックアカデミーの公式ページはこちら テックアカデミーの口コミ・評価はこちら
キカガク
  • 多種多様なスキルコース
  • 初心者から専門家まで対象
  • 給付金利用で費用を抑えられる
キカガクの公式ページはこちら キカガクの口コミ・評価はこちら
Aidemy Premium
  • 完全オンラインで、時間や場所に縛られず学習したい
  • マンツーマン学習サポートにより実践に近い経験をしたい
  • 未経験から機械学習エンジニアになりたい
Aidemy Premiumの公式ページはこちら Aidemy Premiumの口コミ・評価はこちら
My Agile Privacy
This website uses technical and profiling cookies. Clicking on "Accept" authorises all profiling cookies. Clicking on "Refuse" or the X will refuse all profiling cookies. By clicking on "Customise" you can select which profiling cookies to activate.