Twitterからのスクレイピング方法 2021年版(twint を使ってTwitter API呼び出しなしで実現)

年収がニ年間で100万円以上下がった。

会社から地面に叩きつけられ、蹴飛ばされ、挙げ句の果てには踏みつけられ気分だ。

 

 

この数ヶ月は、平日の食費を削って100円単位で小遣いを貯めてきた。

平日の昼食は、会社で賞味期限が近く無料提供していた保存食を大量に手に入れて、それだけを食べて生活してる。

おそらく3000円程度は貯まっただろう。

そもそも普段から食費を削っているので雀の涙程度の効果しか無いが、お腹が減るのをグッと我慢して節約中だ。

 

 

さらに、格安データSIMを2つ契約していたので、一つを解約してSIMを返却した。

数日後、深夜帰宅中に急にスマホがネットに繋がらなくなった

翌朝、通信会社に電話をかけた。

 

私「もしもし。昨日から手元のSIMがネットに繋がりません。」

担当「あぁ、おそらく手元のSIMが解約されたモノですね。」

電話口から低い声が聞こえてきた。

 
 


 

私「返却済のSIMを送り戻すことは可能ですか?」

担当「日にちが経過してるので、既に廃棄している可能性があります。」

私「その場合、どうなりますか?」

焦りで鼓動が早くなっているのを感じた。

 

 

 
 

担当「事務手続き料金3000円払って再契約です。
 
 

 
 

なんだってーー!

1efac85a

 
 

日経平均株価が最高値更新中にも関わらず、未だダブルインバースを保有しており、数10万円単位で損失を出し続けている。

ただ今回は、自分の不注意で金銭を失った。
 
 

「自分がこんなにも愚かな存在だったとは・・・・」

やるせない気持ちの中、帰路の夜道は北風がいつもより心にも沁みてくるように感じた

 
 
 

氷点下だったからね。

東京の明日は0℃予想 関東各地で真冬の冷え込みに 昼間も今日より寒くなる予想

真冬に比べると日差しの力強さが増している分、日向ではしのぎやすいものの、空気そのものは冷たい一日です。

2021/02/08 17:24 ウェザーニュース

TwitterをスクレイピングするライブラリTwitterScraper が動作しなくなった。

TwitterからツイートをTwitterScraperでスクレイピングする
新コロナウイルスの猛威の中、ゴールデン・ウィークに突入しました。政府の発表にて小学校の自宅学習は5月末まで延長されたようです。サラリーマンも同じような状況ですが、これ以上は業績への影響が大きいので、段階的に緩和される傾向です...

このライブラリへの対応も時間がかかったのに、稼働期間は半年と持たなかった。

2020年10月頃から動いてなかったようだが、魚釣りに没頭していて全く把握してなかった。

 

 

コードは趣味で書いている方だが、ずっと保守・維持ばかりしている。

だから、いつまでたっても技術スキルが社内で底辺だ。

Twitterのスクレイピングができるライブラリを調査する

「TwitterScraper 」を修正する・・・という事も考えたが、代替案があるのであれば、そっちを使いたい。

scweet を使ったTwitterスクレイピング

最初に目に入ったのは「TwitterScraper 」のGitHubのISSUE欄に、大量に書き込まれていた次の文章。

Hello, TwitterScraper doesn’t work since Twitter changed its API. Here is an alternative for you to work with : scweet. I’ll try to extract more features in the next days.

【超意訳】
やぁ!TwitterがAPIを変更したため、TwitterScraperは機能しないよ~ん。
あなたがに送る代替手段、そ・れ・は「scweet」!
数日中にさらに多くの機能を抽出しようと思ってるよ!

ウザい広告書き込みの、自称「データ分析屋」のモロッコ人(学生)。Linkedin見たらインターンシップ経験しただけじゃん。

ライブラリの説明を読むとSeleniumを使ったTwitterスクレイピングを作ったようだ。

GitHub - Altimis/Scweet: A simple and unlimited twitter scraper : scrape tweets, likes, retweets, following, followers, user info, images...
A simple and unlimited twitter scraper : scrape tweets, likes, retweets, following, followers, user info, images... - GitHub - Altimis/Scweet: A simple and unli...

まぁ誰が作っても動けば構わないので、さっそくダウンロードして呼び出してみた。

ただ、この学生はimportして親フォルダから呼び出す想定をしていない気がする。

そして同一フォルダに非コードがあったり、グチャグチャだよ・・・。

学生なら許されるけど、中途採用なら落とされるよ。知らんけど。

 
 

で、実行するとエラー。

Seleniumを使っているのでchromedriverがいる。

深堀りしても良かったが、作者の広告行動が気に食わないのと、ググるともっと有名なツールが見つかったので、即削除。

Seleniumを使うという発想が安直だ。株の自動売買は私もSelenium使おうとしてるけどさ。

twint を使ったTwitterスクレイピング

Twitterのスクレイピングの記事が、昨年の10月、11月頃から日本語で増えている・・ように感じる。

そのブロガー達が口を揃えて「オススメ」と言っているライブラリがこれ。

GitHub - twintproject/twint: An advanced Twitter scraping & OSINT tool written in Python that doesn't use Twitter's API, allowing you to scrape a user's followers, following, Tweets and more while evading most API limitations.
An advanced Twitter scraping & OSINT tool written in Python that doesn't use Twitter's API, allowing you to scrape a user's followers, following...

インストール方法

こっちのtwintはpipを使ってインストールできる。

インストールが完了するとコマンドラインでも使える。

なんか知らないけどエラーが出た。

上記の方法で動かない場合は、一度twintをアンインストールして、こちらの方法で再度インストールするとうまく動作できるらしい。親切ね。

使い方

説明するまでもないぐらい公式ページに親切に書かれている。

非常に簡単。

csv出力されるので、差分マージを含めて実装したコードは次のようになる。

最初の一回目は7年前から指定の文字列を含んだTweet記事を取得する。

以降はデイリーで動かすことで差分ファイルを抽出する。あとは、このファイル同士をマージしてあげれば良い。

マージ部分は、もっとスッキリ書ける気がするが思いつかず。

因みに、ダウンロードされたcsvのファイルの中身は次のようになる。

あとは、どう加工して使うかだ。それは人によって異なる。

実行時間も速い。なにこれ?最高かよ。

まとめ

正常に動作している。

不要なフィールドも多いので出力しないように対応等も考えるか。

有名ライブラリのようなので、「twint」お前には できる限りの延命を期待してるよ。

タイトルとURLをコピーしました