[PYTHON] Surveillez les mises à jour des pages Web avec LINE BOT

tl;dr

introduction

couler

  1. Inscrivez-vous auprès des développeurs LINE
  2. Obtenez le jeton d'accès à la chaîne
  3. Faites-vous des amis avec bot sur LINE
  4. Écrivez un LINE BOT en utilisant line / line-bot-sdk-python
  5. Rédigez le code de surveillance des mises à jour en utilisant psf / requests-html

La description

Inscrivez-vous auprès des développeurs LINE

Selection de CHAINE

Obtenez un jeton d'accès à la chaîne

channel access token

Inscrivez-vous comme ami

Ecrire du code en utilisant line / line-bot-sdk-python

Installer le SDK

$ pip install line-bot-sdk

Je posterai à tous mes amis et au groupe que j'ai eu plus tôt

from linebot import LineBotApi
from linebot.models import TextSendMessage

access_token = 'XXXXXXXXXXXXXXX'

line_bot_api = LineBotApi(access_token)
line_bot_api.broadcast(TextSendMessage(text='Diffuser à tous les amis'))

Contrôle de fonctionnement

Exemple de message
1578397220270.jpg

4. Rédigez le code de surveillance des mises à jour en utilisant psf / requests-html

Installation

$ pip install requests-html

Comment utiliser

La description
<div class="status-text">
	<div class="status-heading">
		<span class="status">Articles qui ne peuvent pas être commandés*</span>
	</div>
	<div class="status-note">
	<p>

	</p>
	</div><!-- /div#status-note -->
</div>
Essayez de gratter
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://XXXXXXXXXXXXX/') # <----Saisissez l'URL à laquelle vous souhaitez accéder ici
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('hxxps://XXXXXXXXXXXXX/') # <----Saisissez l'URL à laquelle vous souhaitez accéder ici
r.html.find('div.status-heading span.status')[0].text # <-----Articles qui ne peuvent pas être commandés*

Essayez de combiner avec la partie notification de LINE

# -*- 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 = 'Articles qui ne peuvent pas être commandés'

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("Vous pouvez acheter le produit:" + TARGET_URL)

|Exemple de message| |:-:|: |1578400246124.jpg|

Lorsque vous souhaitez publier pour un utilisateur spécifique ou un groupe spécifique

Recevoir le webhook

Exemple de réglage

Mettez BOT dans un groupe et obtenez group_id

Exemple de réglage
Exemple de vérification sur l'écran d'inspection de ngrok
Screenshot_2020-01-03 ngrok - Inspect.png

Pour push_message au lieu de diffuser

-line_bot_api.broadcast(TextSendMessage(text='Diffuser à tous les amis'))
+line_bot_api.push_message(group_id, TextSendMessage(text='Envoyer un message à un individu'))

finalement

Recommended Posts

Surveillez les mises à jour des pages Web avec LINE BOT
Grattage WEB avec BeautifulSoup4 (page en couches)
Surveillez les applications Web Python avec Prometheus
Afficher le temps d'attente de Disney avec le bot LINE
[Note personnelle] Scraping de pages Web en python3
Grattage WEB avec BeautifulSoup4 (page du numéro de série)
Créer un LINE BOT avec Minette pour Python
[python] Récupérez rapidement les métadonnées de la page Web avec lassie
J'ai créé un Bot LINE avec Serverless Framework!
Bot LINE sans serveur conçu avec IBM Cloud Functions
Créer un bot LINE WORKS avec Amazon Lex
Extraire des données d'une page Web avec Python
[AWS] J'ai créé un BOT de rappel avec LINE WORKS
J'ai créé un bot de livre de compte de ménage avec LINE Bot
Faire un bot d'analyse morphologique de manière lâche avec LINE + Flask
[Super facile] Faisons un LINE BOT avec Python.
[LINE Messaging API] Créer un BOT de retour de perroquet avec Python
Résumé de la page Web (prétraitement)
Créer un LINE BOT
LINE BOT si ~ trébuché
Réalisation Flask-Python
Créez une application d'apprentissage automatique avec ABEJA Platform + LINE Bot
[Part.2] Exploration avec Python! Cliquez sur la page Web pour vous déplacer!
Jusqu'à ce que Django retourne quelque chose avec un robot de ligne!
Afficher la page Web avec FastAPI + uvicorn + Nginx (conversion SSL / HTTPS)
[AWS] J'ai créé un BOT de rappel avec LINE WORKS (implémentation)