Surveillance des changements de site Web à l'aide de python

Je voulais surveiller les changements dans un site. Actuellement, je surveille mon texte d'auto-introduction, mais si je change l'url et le nom de la classe, il peut être utilisé sur d'autres sites. Les données de page sont acquises toutes les 20 secondes et il est affiché si les données sont différentes de l'acquisition précédente.

import requests
import time

from bs4 import BeautifulSoup


url = "https://qiita.com/sssssssiiiiinnn"
class_name ='div.newUserPageProfile_info_body.newUserPageProfile_description'
file = "elems_text.txt"


def is_not_changed(old_elem, new_elem):
    return old_elem == new_elem


def set_old_elems():
    try:
        f = open(file)
        old_elems = f.read()
        print(f'{"old_elem":10} : {old_elems}')
    except:
        old_elems = ''
    return old_elems


def set_new_elems():
    response = requests.get(url)
    response.encoding = response.apparent_encoding
    bs = BeautifulSoup(response.text, 'html.parser')
    new_elems = str(bs.select(class_name))
    print(f'{"new_elem":10} : {new_elems}')
    return new_elems


def display_result(old_elem, new_elem):
    if not is_not_changed(old_elems, new_elems):
        f = open(file, 'w')
        f.writelines(new_elems)
        f.close()
        print("Change is detected!!")
    else:
        print("not changed...")


if __name__ == '__main__':
    try:
        while(1):
            print("="*100)
            new_elems = set_new_elems()
            old_elems = set_old_elems()
            display_result(old_elems, new_elems)
            time.sleep(20)
    except KeyboardInterrupt:
        print("Interrupted by Ctrl + C")

Recommended Posts

Surveillance des changements de site Web à l'aide de python
Changer la version de python à l'aide de pyenv
Commencez à utiliser Python
Scraping de sites Web à l'aide de JavaScript en Python
Scraping à l'aide de Python
Changer l'invite de l'interpréteur Python
Manipuler Redmine à l'aide de Python Redmine
Nettoyage des données à l'aide de Python
Utilisation des packages Python #external
Câblage Communication Pi-SPI avec Python
Calcul de l'âge à l'aide de python
Rechercher sur Twitter avec Python
Identification de nom à l'aide de python
Notes sur l'utilisation de sous-processus Python
Essayez d'utiliser Tweepy [Python2.7]
Modifier la chronologie de Maya Python
mémo python utilisant l'opérateur perl-ternaire
Aplatir à l'aide du rendement Python de
Scraping à l'aide de Python 3.5 async / await
Enregistrer des images à l'aide de requêtes python3
Surveillance intérieure à l'aide de Raspberry Pi
[S3] CRUD avec S3 utilisant Python [Python]
[Python] Essayez d'utiliser le canevas de Tkinter
Essayez d'utiliser Kubernetes Client -Python-
Connectez-vous au site Web en Python
notes python pour l'utilisation de variables spéciales perl
[Python] Utilisation d'OpenCV avec Python (basique)
Scraping à l'aide de la syntaxe Python 3.5 Async
Publier sur Twitter en utilisant Python
Commencez à Selenium en utilisant python
Algorithme de recherche utilisant word2vec [python]
[Python] Changer de type avec les pandas
[Python] Surveillance des dossiers avec watchdog
python: principes de base de l'utilisation de scikit-learn ①
# 1 [python3] Calcul simple à l'aide de variables
Créer des tickets JIRA en utilisant Python
Contrôle d'instruments à l'aide de Python [pyvisa]
Manipulez les feuilles de calcul localement à l'aide de Python
mémo python utilisant perl --join
Web scraping avec Selenium (Python)
[Python] Validation de JSON avec Voluptuous
Comment changer la version de Python
Diffusion sur LINE en utilisant python
Analyse de données à l'aide de pandas python
Traduit à l'aide de googletrans en Python
Utilisation du mode Python dans le traitement
Utiliser OpenCV avec Python @Mac
[Python] Jeu de tir avec pyxel
Envoyer en utilisant Python avec Gmail
Compléter python avec emacs en utilisant company-jedi
Comment installer Python à l'aide d'Anaconda
Initialisation de variables globales à l'aide de décorateurs Python
[Python] Chargement de fichiers csv à l'aide de pandas
Remarque Python: à propos de la comparaison en utilisant is
[Ubuntu] [Python] Suivi d'objets à l'aide de dlib
Capture d'image de Firefox en utilisant Python
[Python] Utilisation d'OpenCV avec Python (filtrage d'image)
Précautions lors de l'utilisation de Pit avec Python
Récapitulatif si vous utilisez AWS Lambda (Python)