[PYTHON] Soyons avertis de la météo dans votre région préférée de Yahoo Weather sur LINE!

Historique du développement

«Restrictions de communication» que tout le monde aurait dû rencontrer à l'époque moderne Il est douloureux de ne pas pouvoir utiliser votre smartphone librement lors de vos déplacements. ~~ Il s'agit simplement d'augmenter la limite mensuelle de paquets ~~

Même ainsi, il y a des moments où je veux connaître la météo, même lorsque je vais au travail ou à l'école. C'est un problème si vous ne savez pas immédiatement quand la communication est restreinte.

Si vous pouvez voir le texte seul, c'est tout à fait le cas ... Alors pourquoi ne pas envoyer un message depuis LINE! ??

Donc, comme objectif final, si j'envoie le premier et le dernier train sur LINE, j'aimerais pouvoir obtenir les informations que je voulais savoir en répondant, alors j'ai commencé le développement.

Peut-être que le texte peut être fait plus rapidement que de regarder l'application ...

obtenir des informations météo yahoo

Tout d'abord, collectez des informations sur chaque station! !!

Tout d'abord, j'échangerai des messages sur LINE et créerai un système pour notifier la météo de chaque zone comme une pratique de grattage.

Pour le moment, obtenons des informations de Yahoo Weather en utilisant le grattage.

import requests
from bs4 import BeautifulSoup

Pour ce faire, utilisez des requêtes pour ouvrir l'URL en python. Ensuite, importez bs4 de BeautifulSoup pour extraire des données de HTML ou XML après avoir ouvert l'URL.

Ensuite, URL météo yahoo est la suivante. https://weather.yahoo.co.jp/weather/ Sur cette URL, vous pouvez voir la météo dans tout le pays en un coup d'œil, et vous pouvez creuser plus profondément dans la région que vous souhaitez connaître.

Tout d'abord, obtenez des URL locales de tout le pays.

target_url= "https://weather.yahoo.co.jp/weather/"
res       = requests.get(target_url)
soup      = BeautifulSoup(res.text, 'lxml')
elems     = soup.find_all("a")

with open("yahooChiku.csv", "w", encoding="utf-8", newline ="") as ychiku:
    writer = csv.writer(ychiku)
    for e in elems:
        chikuNumList = []
        if re.search(r'<a data-ylk="', str(e)):
            if re.search(r'"//weather.yahoo.co.jp/weather/jp/\d.*/"', str(e)):
                row = re.search(r'"//weather.yahoo.co.jp/weather/jp/\d.*/"', str(e)).group().strip('"')
                row = "https:" + row
                chikuNumList.append(row)
                writer.writerow(chikuNumList)

Veuillez vérifier différentes façons d'utiliser Beautiful Soup. Je ne l'utilise que de manière ponctuelle, donc je manque de connaissances ...

Ce que nous faisons avec ce code source est le processus d'extraction de l'URL de chaque région à partir de la météo dans tout le pays. Les balises contenant des URL locales peuvent être obtenues avec \ . Cependant, il existe d'autres informations contenues dans cette balise, utilisez donc des expressions régulières pour extraire uniquement celles qui incluent l'URL de chaque région. Puisque https n'est pas inclus dans les informations de balise, ajoutez "https" au début et écrivez-le dans csv et enregistrez-le.

Ça va être long pour le moment, alors c'est tout pour le moment.

la prochaine fois

Maintenant que j'ai l'URL locale, j'aimerais écrire un article sur la prise de l'URL de la ville, du quartier, de la ville et du village, le nom de chaque zone, et simplement envoyer un message sur LINE.

  • En cas de manque d'explications ou de suppléments, n'hésitez pas à nous contacter.

À la prochaine! !! !!

Recommended Posts

Soyons avertis de la météo dans votre région préférée de Yahoo Weather sur LINE!
Soyons avertis de la météo dans votre région préférée de Yahoo Weather sur LINE! ~ PART2 ~
Obtenez votre fréquence cardiaque à partir de l'API fitbit en Python!
Comment est le progrès? Continuons le boom ?? en Python
Obtenez des informations de l'Agence météorologique et informez Slack des avertissements météorologiques dans les 23 quartiers de Tokyo
Obtenez le titre et la date de livraison de Yahoo! News en Python
Obtenez le nombre de lecteurs d'articles sur Mendeley en Python
Vérifiez le type de variable que vous utilisez
Comment obtenir le nom du bloc-notes que vous utilisez actuellement dans Google Colab
Si vous pensez que la personne que vous mettez avec pip ne fonctionne pas → Utilisez-vous python3 par hasard?
À propos de l'environnement de développement que vous utilisez
Vérifiez l'état des données à l'aide de pandas_profiling
Soyons avertis de la météo dans votre région préférée de Yahoo Weather sur LINE!
Obtenez, testez et soumettez des cas de test dans le concours AtCoder à partir de la ligne de commande
Obtenir la liste des packages de l'utilisateur spécifié à partir des packages enregistrés dans PyPI
Affiche automatiquement les paroles de la chanson en cours de lecture sur iTunes en Python
Récupérer le contenu de git diff depuis python
Obtenez la météo à Osaka via l'API Web (python)
Récupérer l'appelant d'une fonction en Python
Effaçons la (base) involontaire qui apparaît dans le terminal [Sortez de l'environnement Conda]
Recevez le dernier rendez-vous de Google Agenda et notifiez-le sur LINE tous les matins
Quelle est la force de votre Qiita? Statistiques sur le nombre de Contributes visibles dans les données
Utilisé depuis l'introduction de Node.js dans l'environnement WSL
Comment obtenir le nombre de chiffres en Python
[Python] Récupérez le texte de la loi à partir de l'API e-GOV law
Ouvrez la version Chrome de LINE à partir de la ligne de commande [Linux]
[python] Récupère la liste des classes définies dans le module
Récupérer le code retour d'un script Python depuis bat
Obtenir la taille (nombre d'éléments) de Union Find en Python
Différence de résultats en fonction de l'argument du multiprocessus.
Utilisons les données ouvertes de "Mamebus" en Python
Obtenez l'URL de la destination de la redirection HTTP en Python
Notifier LINE des informations d'apparence TV de votre artiste préféré
Appelez l'API Hatena Blog depuis Python et enregistrez vos articles de blog individuellement sur votre PC
Affiche automatiquement les paroles de la chanson en cours de lecture sur iTunes en Python (version améliorée)