質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

819閲覧

twitter api スクレイピング エクセルに書き込む方法について

benden

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/04/28 04:30

python初心者です。
twitter api でスクレイピングした結果をエクセルに出力する方法がどうしてもわかりません😢
どうか、ご教示いただけますと幸いです。
下記のコードでスクレイプはできるのですが、エクセルに書き込む方法がどうしてもわかりません。
ヒントでも貰えると幸いです。<(_ _)>

import tweepy from pprint import pprint BEARER_TOKEN = "" API_KEY = "" API_SECRET = "" ACCESS_TOKEN = "" ACCESS_TOKEN_SECRET = "" def ClientInfo(): client = tweepy.Client(bearer_token = BEARER_TOKEN, consumer_key = API_KEY, consumer_secret = API_SECRET, access_token = ACCESS_TOKEN, access_token_secret = ACCESS_TOKEN_SECRET, ) return client search = "" # 検索対象 tweet_max = 10 # 取得したいツイート数 def SearchTweets(search,tweet_max): tweets = ClientInfo().search_recent_tweets(query = search, max_results = tweet_max) results = [] tweets_data = tweets.data if tweets_data != None: for tweet in tweets_data: obj = {} obj["tweet_id"] = tweet.id # Tweet_ID obj["text"] = tweet.text # Tweet Content results.append(obj) else: results.append('') return results pprint(SearchTweets(search,tweet_max))

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

  1. openpyxl を使う
  2. CSVファイルを生成して Excel で読み込む

などの手段が考えられます。

投稿2022/04/28 04:50

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

benden

2022/04/28 05:08

ご回答ありがとうございます。 1,2の使い方を調べて試してみようと思います。 本当にありがとうございます!。<(_ _)>
guest

0

質問と直接関係はありませんが、気になる部分があったので回答させてもらいます。

今回スクレイピングという表現をしていますが、スクレイピングはものすごく限定した使い方をするとWebページからデータを取得することを指します。
限定的ではありますが、一般的にはこちらの使い方で使われることが多いと思います。

今回のプログラムに関しては、twitterが公式で用意しているapi(外部からtwitterと連携ができるような仕組み)を使用しているため、スクレイピングとはあまり言わない印象です。
単純にtwitter apiからのデータ取得で良いと思います。
apiが提供されていない場合に、直接webページからデータを取得するスクレイピングを活用するといった考え方をすると思います。

また、エクセルへの書き込みですが、どのプログラミング言語でもそうですが、エクセルとプログラミング言語の相性は悪く、(エクセルファイルはエクセルソフトを使用して完結するような作りのため)あまり出力ファイルとしては向いていません。
そのため、既に回答ありますが、一次回答としてはpythonでエクセルを使えるようにするライブラリの使用がまず挙げられますが、思ったような動作をしなかったりするので、最終的にはcsvのようなエクセルソフト専用ではないファイル形式に出力することが良いとされています。
一応、javaやc#あたりなんかはpythonなどと比べると多少エクセルへ対応をしているようですが、そんなに相性はよくない印象です。

投稿2022/04/29 04:39

YuuT

総合スコア673

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2022/04/29 22:37 編集

> どのプログラミング言語でもそうですが、エクセルとプログラミング言語の相性は悪く、(エクセルファイルはエクセルソフトを使用して完結するような作りのため)あまり出力ファイルとしては向いていません。 エクセルが主に使用するドキュメント形式である xlsx は仕様の公開された形式で、まさに誰でもプログラミング言語を用いて読み書きできるようになっています。 プログラミング言語で作られたアプリケーションの代表格がエクセルです。 主要言語ではそれを扱うためのライブラリが多く公開されており、また XML なのでライブラリを使わず読み書きすることも容易であり、それを知らないわけがない(実際、回答中にライブラリの存在をあげている)ため、「プログラミングと相性が悪い」という意味不明な評価は、お得意の悪意ある印象操作としか受け取れません。 「思うように扱えない」と書いていますが、これは「自分が一度試した時はうまく扱えなかった」というのが事実じゃありませんか? そうだとすれば、その時に使用したライブラリのできが悪いか、そうでなければ、使用者が理解できていない可能性も十分考えられます。 そこを意図的にぼかして、エビデンスなく自分勝手な印象をさも事実であるかのように初心者に語るのは悪質です。 xlsx を問題なく読み書きできるアプリケーションとして実際にエクセルが存在し、またエクセルはそれ自身を COM タイプライブラリを通して Python を含む他の言語から扱えるよう公開しています。できの悪いライブラリでうまく扱えない可能性があるなら、その本家本元のライブラリを使えば済むことです。
Zuishin

2022/04/29 22:44

そして初心者がエクセルと言った場合、CSV を指すことも多くあります。 今回のケースでは装飾等が必要ない可能性も高いため、xlsx ではなく CSV で出力するのが適しているかもしれません。 CSV は統一規格があるわけではありませんが、エクセル形式の CSV は広く使われており、これを読み書きできるライブラリも数えきれないほどあります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問