0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

③PythonAnywhere Google Newsのheadlineをスクレイピングしてメールで毎朝定期的に送る

Last updated at Posted at 2022-01-09

クラウド上のサーバーでPythonのコードを実行できるPythonAnywhereで無料のアカウントでもメールを送ったり、スクレイピングすることを説明しました。

①PythonAnywhereの無料アカウントからメールを送る
https://qiita.com/Kent-747/items/fa92c51d81cd4f50eadc

➁PythonAnywhereの無料アカウントでGoogle Newsをスクレイピング
https://qiita.com/Kent-747/items/0380de9ec7d6de137afa

今回は、それらを組み合わせて、Google Newsのヘッドラインをスクレイピングした結果をメールで送ってみたいと思います。

基本的には、以前紹介したコードを組み合わせただけです。

import requests
from bs4 import BeautifulSoup
import re
   
import smtplib, ssl
from email.mime.text import MIMEText


# SMTP認証情報
account = "xxxxx@gmail.com"
password = "yyyyy"
 
# 送受信先
to_email = "zzzzz@gmail.com"
from_email = "xxxxx@gmail.com"

######## ここからGooglニュースのトップページ情報を取得する #####
URL = "https://news.google.com/topstories?hl=ja&gl=JP&ceid=JP:ja"
rest = requests.get(URL)

# BeautifulSoupにGoogleニュースのページ内容を読み込ませる
soup = BeautifulSoup(rest.text, "html.parser")

# Googleニュースの見出しとURLの情報を取得して出力する
data_list = soup.find_all('h3')

allHeadlines =''

for data in data_list:
    print(data.text)
    
    allHeadlines += data.text
    allHeadlines += "<br>"


# MIMEの作成
subject = "本日のGoogle News"

msg = MIMEText(allHeadlines, "html")
msg["Subject"] = subject
msg["To"] = to_email
msg["From"] = from_email
    
server = smtplib.SMTP_SSL("smtp.gmail.com", 465, context=ssl.create_default_context())
 
server.login(account, password)
server.send_message(msg)
server.quit()

今回、少しはまったところは、ヘッドラインをメッセージとして準備する際に
で改行させて連結するところです。

こちらを保存してPythonAnywhere上で実行することは前回の記事を参考にしてください。

それが動くことが確認できたら、次のようにTaskとして毎朝メールが発信できるようすることもできます

UTCでしか時間は設定できなくて、日本時間から+9hとのことです。
私は毎朝7:35に届くようにしてみました。

image.png

このように無事、届きました!
image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?