Python自動化

WEBスクレイピングからツイッターへ

こんな方におすすめ

  • Pythonでwebスクレイピングをやりたい
  • Pythonでwebスクレイピングした内容をツイッターに投稿したい

Pythonで、NewsWeekJapanのトピックスをwebスクレイピングをして、ツイッターに流す方法について説明します。この記事を読むことで、webスクレイピング自体のイメージと、それを効果的に使う方法までイメージできるようになると思います。

実際に、使ったソースコードも全部公開しますので、参考にしてトライしてみて下さい。

webスクレイピングをする内容

Newesweekのウェブサイトから、トピックスに該当する緑で囲った部分をスクレイピングします。

 

 

【世界で5万人が受講】実践 Python データサイエンス・オンライン講座

プログラムの内容

まずは、必要なモジュールをインポートします。webスクレイピングには、requestsとBeautifulSoupを使うよ。

tweepyはツイッターへの投稿に必要なモジュールです。

import requests
from bs4 import BeautifulSoup
import tweepy
import time

Consumer Key(CK),Consumer Secret Key(CS), Access Token(AK), Access Token Secret(AT)の設定。自分のツイッターの開発情報を入手して入れてね。入手方法は省略します。(ググれば出てきます)

CK=xxxx
CS=xxxx
AK=xxxx
AT=xxxx

auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AK, AT)

api = tweepy.API(auth)

スクレイピングするwebサイトからhtmlの情報を入力しよう。今回は、newsweekjapanからトピックスを入手するよ。

target_url = "https://www.newsweekjapan.jp"
r = requests.get(target_url)
soup = BeautifulSoup(r.text, "html.parser")

soupの中身を表示すると、以下のようなhtmlの情報が入っているよ。

soupからfind_allメソッドを用いて、<h3>タグの中身をスクレイピングする。それらをmessage_stackの変数に追加していき、tweepyのメソッドのupdate_statusを用いて送信する。ツイッターは文字数制限があるので、3行まで取得するようにcountで制限してます。

elems = soup.find_all(["h3"])
message_stack = ""
message_stack+="今日のnewsweekjapan"
message_stack+="\n"
count=0
for e in elems:
count=count+1
message_stack +="No."+str(count)+" "
message_stack +=e.getText()
message_stack +="\n"
if count==3:
break
print(message_stack)
message_stack+="Pythonから送信"

api.update_status(message_stack)

 

Python 3 入門+アメリカのシリコンバレー流コードスタイル

webスクレイピングの結果は

以下のように取得したい部分をスクレイピングしてツイートできました。(見やすいようにNo.をふりました。)

これを応用して、自分に必要なニュースや株価を毎朝定期的に取得して、ツイートするとかもできますね。応用は無限大です。

ぜひ、トライして見てください!

スポンサーリンク

-Python自動化

Copyright© MAYRのPython活用法! , 2021 All Rights Reserved Powered by AFFINGER5.