PythonでTwitterのプロフィールと直近のツイートを取得してみた

こんにちは。

4月からPythonを勉強し始めて色々遊んでいたのですが、ふと
###授業中にTwitterが見たい！！！！
となったので
###ターミナルでCUIで見てればバレないんじゃね？？？
とスクレイピングを覚えたての僕は考えてコードをパチパチして作りました。
#スクレイピングの準備

簡単に言えば、webサイトから指定した情報を抜きt(((抽出する)))技術のことです。

環境はmac os Catalina 10.15です。

Python3のインストールはできている前提で書いていきます。
ターミナルを起動して

``` $username@usernameMacBook-Pro
pip3 install bs4
```

```$username@usernameMacBook-Pro
pip3 install requests
```
をします。

これで環境構築は終わりです。エディターを起動して```tweet.py```とでも名前をつけてコードを書きましょう。

Python3のインストール方法がわからない人は適当にググってください。

説明は特にありません。スクレイピングについてわかっていれば大半はわかると思うのでとりあえず写経かコピペでもしてください。
あと僕の好きなエディターはvimです。vimを使いましょう。

```tweet.py
import requests
import bs4

userurl = 'https://twitter.com/%s' % input('input user id => ')
html = requests.get(userurl)
if html.status_code == 404:
    print('ユーザーがいません')
    exit()
soup = bs4.BeautifulSoup(html.text, 'html.parser')
username = soup.find('h1', class_='ProfileHeaderCard-name').a.text
usericon = soup.find('img',class_='ProfileAvatar-image').get('src')
userbus = soup.find('span',class_='js-tooltip')
tweets = soup.select('.js-stream-item')
userbio = soup.find('p',class_='ProfileHeaderCard-bio u-dir')
follow = soup.find_all('span',class_='ProfileNav-value')
for n,l in enumerate(tweets):
    print('%s : %s' % (n,l.p.text))
print('User name : %s' % (username))
print('User icon : %s' % usericon)
print('User bio : %s' % userbio.text)
print('User born : %s' % userbus.text)
print('User follow : %s' % follow[1].text)
print('User followers : %s' % follow[2].text)

```
めっちゃ見にくいですね。
まあ適当に改行とかしてきれいにしてやってください。

ここで一回テストしてみてください。
ターミナルを起動して

``` $username@usernameMacBook-Pro
 python3 tweet.py
```
をして起動しましょう。
うまく行けば

```input user id =>```と表示されてTwitterのユーザー名を入力すればそのアカウントのプロフィールと直近のツイートをスクレイピングしてくれます。

非公開アカウント(いわゆる鍵アカウントの場合)はツイートは取得できませんが、プロフィールは取得できます。

もしもモジュールエラーを吐かれたら最初の導入で失敗しているので

```
pip3 uninstall 〇〇(モジュール名)
```
をして再度上に戻ってインストールしなおしてください。


```
input user id => Qiita
0 : Qiita Advent Calendarは、Qiitaとクリスマスを最高に盛り上げる一大イベントです
ご投稿いただいた方には、スポンサー様からの豪華賞品もあるかも！？
常連の方も、そろそろ投稿してみようかな？と迷っている方も、みんなでQiita Advent Calendarを楽しみましょう！https://blog.qiita.com/adventcalendar-2019/ …
1 : 700いいね！ | gitのdiff, status, logを極限までコンパクト化＋便利化する by @yuya_prestohttps://buff.ly/2PD992W 
2 : 300いいね！ | Embedded Framework使いこなし術 by @_monohttps://buff.ly/2qa2t1B 
3 : 500いいね！ | Qiita殿堂入り記事ランキングを作った物語https://buff.ly/2oz9wjW 
4 : 1400いいね！ | 4歳娘「パパ、セッションとCookieってなあに？」 by @Yametaro1983https://buff.ly/36qa3pl 
5 : 700いいね！ | 【Windows版】VS Code キーボードショートカット一覧 （オススメ付き） by @TakahiRoytehttps://buff.ly/2C3s9zz 
6 : 800いいね！ | ３週間でAWS認定ソリューションアーキテクト-アソシエイト-とったので、勉強法などまとめてみる by @fukubaka0825https://buff.ly/2q863cA 
7 : 600いいね！ | Wordな職場にSwaggerを定着させようとして失敗したけど結局定着した話 by @segur_vitahttps://buff.ly/2Wt6Ktc 
8 : 1800いいね！ | 【保存版・初心者向け】独学でAIエンジニアになりたい人向けのオススメの勉強方法 by @tankazunori0914https://buff.ly/2PyltRY 
9 : 2000いいね！ | 初心者プログラマが犯しがちな過ち25選 by @rana_kualuhttps://buff.ly/2NyasgU 
10 : 3500いいね！ | Vim幼稚園からVim小学校へ by @hachi8833https://buff.ly/2q86OSW 
11 : 100いいね！ | envsubstを使ってDockerで設定ファイルに環境変数を埋め込めこむ汎用的なパターン by @minamijoyohttps://buff.ly/2C0C60G 
12 : 100いいね！ | 線形探索を極める！ 〜 for 文で色んなことができることを知る 〜 by @drken1215https://buff.ly/2JDSCIa 
13 : 100いいね！ | kaggleのkernelから学ぶこんな可視化備忘録https://buff.ly/334gpsx 
14 : 3000 Contribution! | @ucan_labhttps://buff.ly/2JC6EKG 
15 : 3300いいね！ | 開設後３週間で収益１０万円を得た個人開発サイトでやったことの全部を公開する by @nodenodenode1https://buff.ly/2pjmGlJ 
16 : 3700いいね！ | エンジニアの情報収集法まとめ by @nesheep5https://buff.ly/2BVM0R9 
17 : お待たせしました！
Qiita Advent Calendar 2019のページを公開しました

ぜひご参加ください
https://qiita.com/advent-calendar/2019 …
18 : 200いいね！ | Webエンジニア1年目の自分に捧げたい本・記事を超まとめ by @virtual_techXhttps://buff.ly/2pgV68F 
19 : 800いいね！ | WEB ページの読み込み時間を短くしようhttps://buff.ly/36mcU2T 
20 : 200いいね！ | 機械学習ライブラリ scikit-learnの便利機能の紹介 by @IshizakiYukohttps://buff.ly/31XwCyh 
User name : Qiita (キータ) 公式
User icon : https://pbs.twimg.com/profile_images/1542801560/Qiita_400x400.png
User bio : Qiita公式アカウントです。何かありましたら support@qiita.com までご連絡ください :) / 人気の投稿 @qiitapoi / Qiita:Zine https://zine.qiita.com/  / Qiita:Shop http://suzuri.jp/qiita/ 
User born : 2011年7月に登録
User follow : 6
User followers : 25,376
```
試しにQiita公式を見てみました。
このような画面になれば完成です。お疲れ様でした。寝ましょう。