[PYTHON] Überwachen Sie Webseitenaktualisierungen mit LINE BOT

tl;dr

Einführung

fließen

  1. Registrieren Sie sich bei LINE Developers
  2. Holen Sie sich das Channel-Zugriffstoken
  3. Freunde dich mit bot on LINE an
  4. Schreiben Sie einen LINE BOT mit line / line-bot-sdk-python.
  5. Schreiben Sie den Update-Überwachungscode mit psf / request-html.

Erläuterung

Registrieren Sie sich bei LINE Developers

Kanalauswahl

Holen Sie sich ein Channel-Zugriffstoken

channel access token

Registriere dich als Freund

Schreiben Sie Code mit line / line-bot-sdk-python

Installieren Sie das SDK

$ pip install line-bot-sdk

Ich werde an alle meine Freunde und die Gruppe, die ich früher bekommen habe, posten

from linebot import LineBotApi
from linebot.models import TextSendMessage

access_token = 'XXXXXXXXXXXXXXX'

line_bot_api = LineBotApi(access_token)
line_bot_api.broadcast(TextSendMessage(text='Sendung an alle Freunde'))

Funktionsprüfung

Nachrichtenbeispiel
1578397220270.jpg

4. Schreiben Sie den Update-Überwachungscode mit psf / request-html.

Installation

$ pip install requests-html

Wie benutzt man

Erläuterung
<div class="status-text">
	<div class="status-heading">
		<span class="status">Artikel, die nicht bestellt werden können*</span>
	</div>
	<div class="status-note">
	<p>

	</p>
	</div><!-- /div#status-note -->
</div>
Versuchen Sie es mit Schaben
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://XXXXXXXXXXXXX/') # <----Geben Sie hier die URL ein, auf die Sie zugreifen möchten
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('hxxps://XXXXXXXXXXXXX/') # <----Geben Sie hier die URL ein, auf die Sie zugreifen möchten
r.html.find('div.status-heading span.status')[0].text # <-----Artikel, die nicht bestellt werden können*

Versuchen Sie, mit dem Benachrichtigungsteil von LINE zu kombinieren

# -*- coding:utf-8 -*-
from linebot import LineBotApi
from linebot.models import TextSendMessage
from requests_html import HTMLSession

ACCESS_TOKEN = 'XXXXXXXXXXX'
TARGET_URL = 'hxxps://XXXXXXXXXXXXX/rb/16057071/'
STATUS_CSS_SELECTOR = 'div.status-heading span.status'
NG_STATUS = 'Artikel, die nicht bestellt werden können'

def get_status():
    session = HTMLSession()
    r = session.get(TARGET_URL)
    return r.html.find(STATUS_CSS_SELECTOR)[0].text

def broadcast_to_friends(message):
    line_bot_api = LineBotApi(ACCESS_TOKEN)
    line_bot_api.broadcast(TextSendMessage(text=message))

if not NG_STATUS in get_status():
    broadcast_to_friends("Sie können das Produkt kaufen:" + TARGET_URL)

|Nachrichtenbeispiel| |:-:|: |1578400246124.jpg|

Wenn Sie an einen bestimmten Benutzer oder eine bestimmte Gruppe senden möchten

Webhook erhalten

Einstellungsbeispiel

Fügen Sie BOT in eine Gruppe ein und erhalten Sie group_id

Einstellungsbeispiel
Beispiel für die Überprüfung auf dem Inspektionsbildschirm von ngrok
Screenshot_2020-01-03 ngrok - Inspect.png

Push_message statt Broadcast

-line_bot_api.broadcast(TextSendMessage(text='Sendung an alle Freunde'))
+line_bot_api.push_message(group_id, TextSendMessage(text='Nachricht an eine Person senden'))

Schließlich

Recommended Posts

Überwachen Sie Webseitenaktualisierungen mit LINE BOT
Überwachen Sie Python-Webanwendungen mit Prometheus
Zeigen Sie Disneys Wartezeit mit dem LINE-Bot an
[Persönlicher Hinweis] Scraping von Webseiten in Python3
WEB-Scraping mit BeautifulSoup4 (Seriennummernseite)
Erstellen Sie mit Minette für Python einen LINE BOT
[Python] Mit Metie schnell Webseiten-Metadaten abrufen
Ich habe einen LINE Bot mit Serverless Framework erstellt!
Serverloser LINE-Bot mit IBM Cloud-Funktionen
Erstellen Sie mit Amazon Lex einen LINE WORKS-Bot
Extrahieren Sie mit Python Daten von einer Webseite
[AWS] Ich habe BOT mit LINE WORKS daran erinnert
Ich habe mit LINE Bot ein Haushaltsbuch für Bot erstellt
Machen Sie mit LINE + Flask einen morphologischen Analyse-Bot
[Super einfach] Machen wir einen LINE BOT mit Python.
[LINE Messaging API] Erstellen Sie einen Papageienrückgabe-BOT mit Python
Webseitenübersicht (Vorverarbeitung)
Machen Sie einen LINE BOT
LINE BOT, wenn ~ gestolpert ist
Flask-Python-Realisierung
Erstellen Sie eine App für maschinelles Lernen mit ABEJA Platform + LINE Bot
[Teil 2] Crawlen mit Python! Klicken Sie auf die Webseite, um sich zu bewegen!
Bis Django etwas mit einem Linienbot zurückgibt!
Webseite mit FastAPI + uvicorn + Nginx anzeigen (SSL / HTTPS-Konvertierung)
[AWS] Ich habe BOT mit LINE WORKS (Implementierung) in Erinnerung gerufen.