Récupérez la source de la page à charger indéfiniment avec python.

Aperçu

Dans cet article, j'ai créé une page pour un chargement infini. Sur des pages comme celle-ci, vous ne pouvez pas obtenir la source avec des curl ou des requêtes, que vous utilisez souvent, vous devez donc faire quelque chose d'un peu spécial. Cette fois, j'écrirai le code pour obtenir le contenu de cette page.

environnement

*python 3.8.1

code

Obtenez la source de la page créée par le code de cet article. Lorsque la limite de temps et de nombre d'octets acquis est atteinte, le code acquis jusqu'à présent est émis.

get_inf_page.py


import requests
import timeout_decorator

r_bytes = b""
def main():
    url = "http://localhost:8000"

    r = requests.get(url, stream=True, timeout=20)

    byte_limit = 30
    @timeout_decorator.timeout(100)
    def load_bytes(r):
        global r_bytes
        for l in r.iter_content():
            r_bytes += l
            if len(r_bytes) % 500 == 0:
                print(f"loaded:{len(r_bytes)}/{byte_limit}")
            if len(r_bytes) > byte_limit:
                r.close()
                print("reached size limit")
                break

    try:
        load_bytes(r)
    except timeout_decorator.timeout_decorator.TimeoutError:
        print("timeout")
        pass

    print(r_bytes)

if __name__ == "__main__":
    main()

Contrôle de fonctionnement (arrêté lorsque le nombre d'octets chargés est dépassé)

Veuillez exécuter le code ci-dessus tout en exécutant le code dans cet article dans un autre terminal. Il sera affiché comme suit.

reached size limit
b'<p>Hello World ! 0</p><p>Hello '

Contrôle de fonctionnement (arrêt lorsque le temps de chargement est écoulé)

Modifiez les 11e et 12e lignes pour ce qui suit et vérifiez le fonctionnement de la même manière que ci-dessus.

    byte_limit = 1000
    @timeout_decorator.timeout(5)

Seule la quantité de sortie est affichée dans les 5 secondes après le démarrage.

timeout
b'<p>Hello World ! 0</p><p>Hello World ! 1</p><p>Hello World ! 2</p>'

c'est tout.

Recommended Posts

Récupérez la source de la page à charger indéfiniment avec python.
PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
Obtenez le nombre de visites sur chaque page avec ReportingAPI + Cloud Functions
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
Un moyen simple de vérifier la source des modules Python
Comment obtenir le nombre de chiffres en Python
Essayez d'obtenir le contenu de Word avec Golang
Obtenez l'état de fonctionnement de JR West avec Python
Remarque: Comment obtenir le dernier jour du mois avec python (ajouté le premier jour du mois)
Comment obtenir une liste de fichiers dans le même répertoire avec python
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
J'ai essayé de trouver l'entropie de l'image avec python
Essayez d'obtenir la liste des fonctions du paquet Python> os
Lien pour commencer avec python
Connaissances minimales pour démarrer avec le module de journalisation Python
Obtenez des informations équivalentes à l'onglet Réseau des outils de développement Chrome avec Python + Selenium
Obtenez la météo avec les requêtes Python
Obtenez la météo avec les requêtes Python 2
Comment obtenir la version Python
[Part.2] Exploration avec Python! Cliquez sur la page Web pour vous déplacer!
Comment démarrer avec Python
Essayez d'automatiser le fonctionnement des périphériques réseau avec Python
[Pour les débutants] Web scraping avec Python "Accédez à l'URL de la page pour obtenir le contenu"
Comment entrer dans l'environnement de développement Python avec Vagrant
Une note de malentendu lors de la tentative de chargement de l'intégralité du module self-made avec Python3
[Introduction à Python] Comment obtenir des données avec la fonction listdir
Comment obtenir les informations des organisations, Cost Explorer d'un autre compte AWS avec Lambda (python)
[Python] Comment obtenir le premier et le dernier jour du mois
Je veux sortir le début du mois prochain avec Python
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
De l'introduction de JUMAN ++ à l'analyse morphologique du japonais avec Python
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
Essayez d'obtenir des métriques CloudWatch avec la source de données python re: dash
Le moyen le plus rapide d'obtenir régulièrement des images de caméra avec opencv de python
Vérifier l'existence du fichier avec python
La route de la compilation vers Python 3 avec Thrift
Je souhaite extraire une URL arbitraire de la chaîne de caractères de la source html avec python
Un mémo d'un programme qui récupère une date à deux chiffres avec javascript, Ruby, Python ou un script shell.
Python VBA pour obtenir une capture de la page WEB entière avec Selenium
Comment couper la partie inférieure droite de l'image avec Python OpenCV
Comment obtenir la différence de date et d'heure en secondes avec Python
Essayez d'imaginer les données d'élévation du National Land Research Institute avec Python
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
Obtenez des visites d'articles et des likes avec l'API Qiita + Python
J'ai essayé de rationaliser le rôle standard des nouveaux employés avec Python
Obtenez la valeur de retour d'un script shell externe (ls) avec python3
Récupérer le contenu de git diff depuis python
[Python] Lire le code source de Bottle Part 2
[Python] Récupérez les fichiers dans le dossier avec Python
Préparer l'environnement d'exécution de Python3 avec Docker
Mathématiques Todai 2016 résolues avec Python
[Python] Obtenir / modifier l'étiquette d'échelle de la figure
[Note] Exportez le html du site avec python.
[Python] Obtenez les principaux sujets de Yahoo News
Récupérer l'appelant d'une fonction en Python
Spécifiez le fichier exécutable Python à utiliser avec virtualenv
Créer une page qui se charge indéfiniment avec python