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

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

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

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

558閲覧

time.sleepを改善したい

onikudaisuki

総合スコア23

Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/03/09 23:58

前提・実現したいこと

pythonで某坂道アイドルのブログサイトをスクレイピングして名前とURLを取得し、LINE Notifyで通知させるシステムを作っています.
取得した名前が用意した名前のリストに含まれているときLINE送信・通知を行い,含まれていないとき15分後に再度スクレイピングを行います.
15分後に行われるのですが,名前が含まれていてlineが送信されるのはいつもブログ更新の15分後なのです.
含まれているときも15分後にline送信が実行されるのをすぐに送信するようにしたいです.
私自身どこか勘違いしていると自覚しています.ご教授お願い致します。

発生している問題・エラーメッセージ

対象のブログです.23:14に更新されました.
イメージ説明
送信されたlineの様子です.23:29に送信されました.
イメージ説明

該当のソースコード

python

1import requests 2from bs4 import BeautifulSoup 3import time 4 5member = ["河田陽菜"] 6load_url = "https://www.hinatazaka46.com/s/official/diary/member" 7 8def line(): 9 #必要な変数を設定 10 #取得したトークン 11 TOKEN = ''#省略させていただきます。 12 #APIのURL 13 api_url = 'https://notify-api.line.me/api/notify' 14 #送りたい内容 15 send_contents = member_name+"\n"+url_name 16 #情報を辞書型にする 17 TOKEN_dic = {'Authorization': 'Bearer' + ' ' + TOKEN} 18 send_dic = {'message': send_contents} 19 print(TOKEN_dic) 20 print(send_dic) 21 #LINE通知を送る(200: 成功時、400: リクエストが不正、401: アクセストークンが無効:公式より) 22 requests.post(api_url, headers=TOKEN_dic, data=send_dic) 23 24 25while True: 26 html = requests.get(load_url) 27 soup = BeautifulSoup(html.content,"html.parser") 28 29 member_name = soup.find(class_="c-blog-top__name").text 30 member_name = member_name.replace(' ', '').replace('\n', '') 31 url_place = soup.find(class_="p-blog-main__head") 32 url = url_place.get("href", "default value") 33 url_name = "hinatazaka46.com" + url 34 35 if member_name in member: 36 line() 37 break 38 else: 39 print("none") 40 time.sleep(900)

試したこと

time.sleepの場所をwhile Trueのすぐ下にしました.

補足情報(FW/ツールのバージョンなど)

win11,python3.9.7,requests 2.23.0,beautifulsoup4 4.10.0

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問