WordCloud, j'ai essayé de gratter l'article et de le créer avec cette phrase car c'était une question sur l'en-tête de la phrase. Il est facile d'essayer de gratter un peu, mais il était difficile d'analyser le html par tous les moyens, mais comme il est devenu facile d'obtenir l'article, je vais l'écrire sous forme d'article. 【référence】 ① J'ai essayé de gratter les principaux titres des actualités de "Yahoo! News" avec python ② Obtenez le titre de Nihon Keizai Shimbun avec Python3
・ Grattage facile ・ Obtenez la rubrique Yahoo News ・ Article WC Nikkei
La référence (1) semble s'appliquer à ce que je veux faire, donc cela n'a pas fonctionné, mais la référence (2) fonctionne bien et est facile à comprendre, je vais donc entrer ici. Donc, si vous regardez Reference ② et que vous vous référez ensuite à Reference ①, le code suivant sera appliqué.
# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import requests
import urllib3
import re
url = "http://www.nikkei.com/"
"""
#Si vous utilisez des requêtes, c'est l'endroit
r = requests.get(url)
print(r.headers)
print("--------")
print(r.encoding)
print(r.content)
print(r.text)
soup = BeautifulSoup(r.text, 'html.parser')
#print(soup)
"""
#Si vous utilisez urllib3, c'est l'endroit
http = urllib3.PoolManager()
r = http.request('GET', url)
soup = BeautifulSoup(r.data, 'html.parser')
#print(soup)
#Obtenez l'élément de titre →<title>Actualités économiques, boursières, commerciales et politiques:Version électronique Nikkei</title>
title_tag = soup.title
#Obtenir la chaîne d'élément → Actualités économiques, boursières, commerciales et politiques:Version électronique Nikkei
title = title_tag.string
#Élément de titre de sortie
print(title_tag)
#Titre de sortie sous forme de chaîne de caractères
print(title)
Le même résultat est obtenu avec les requêtes. L'argument de BeautifulSoup est un peu différent car r est différent. Le résultat est
http://www.nikkei.com/
<title>Nihon Keizai Shimbun</title>
Nihon Keizai Shimbun
Si vous obtenez la page de l'article Nikkei, ce sera comme suit
https://www.nikkei.com/article/DGXMZO56522090X00C20A3000000/
<title>Plus de 100000 nouvelles infections corona deviennent une épidémie mondiale en 3 mois (photo)=Reuters):Nihon Keizai Shimbun</title>
Plus de 100000 nouvelles infections corona deviennent une épidémie mondiale en 3 mois (photo)=Reuters):Nihon Keizai Shimbun
# -*- coding: utf-8 -*-
url = "https://news.yahoo.co.jp"
#Si vous utilisez urllib3, c'est l'endroit
http = urllib3.PoolManager()
r = http.request('GET', url)
soup = BeautifulSoup(r.data, 'html.parser')
#Obtenez l'élément de titre
title_tag = soup.title
#Obtenez la chaîne d'éléments
title = title_tag.string
#Élément de titre de sortie
print(title_tag)
#Titre de sortie sous forme de chaîne de caractères
print(title)
#Ajouté ci-dessous
for title in soup.select("p"):
print(title.getText())
Les résultats suivants ont été obtenus. Cependant, je vais regarder la page du haut, mais je ne suis pas sûr car c'est un peu différent de ce qui est réellement aligné.
https://news.yahoo.co.résultat jp.
<title>Yahoo!nouvelles</title>
Yahoo!nouvelles
mot-clé:
Chercher
Obtenez de nouveaux plus facilement avec ID
S'identifier
JavaScript est actuellement désactivé. Yahoo!Pour utiliser toutes les fonctionnalités de News, veuillez activer les paramètres JavaScript. Cliquez ici pour savoir comment modifier les paramètres JavaScript.
En savoir plus
Liste des sujets dans toutes les catégories
Courses hippiques sans spectateur Avantages pour le cheval le plus populaire?
Pourquoi? Mon adresse sur Amazon ... Publié comme emplacement du vendeur. "Je meurs d'envie de m'inquiéter" Je me méfie des femmes
"Je veux sauter du navire", appelant l'un après l'autre dans une salle privée en attente, nouvelle corona
Rush retour au Japon, fête d'adieu annulée "Que dois-je faire?" Cris de résidents japonais en Chine et en Corée du Sud
La Corée du Sud fait rage contre les restrictions d'immigration du Japon, contre-mesures "anti-Japon" pleines de contradictions
L'épine coincée dans votre doigt va-t-elle au cœur? Si vous le retirez vous-même, utilisez une balle de 5 yens
Yahoo!Page spéciale JAPON
Résumé des nouvelles infections à coronavirus
L'Assemblée préfectorale de Shizuoka met en place un grand nombre de masques sur le net, affirmant que "ce n'est pas un produit de revente, il n'y a pas de problème" [New Corona]
Première infection confirmée dans la préfecture de Gunma Nouveau virus corona
La première personne infectée à Hiroshima "Seki" depuis un mois
La première personne infectée à Hiroshima "Seki" depuis un mois
Nouvelle corona, infection domestique 56 personnes en 6 jours seulement
"Matière étrangère mélangée" et mensonge. Le commis à ce moment-là l'a trouvé dans un autre magasin ...
Les anciens AKB48 «Mayumi Watanabe» et «UTAGE!» Qui ont disparu sont également absents, ce qui lui arrive
Préoccupations concernant une nouvelle infection corona: Raison pour laquelle 50% des cliniques dentaires sont dangereuses
Comportement trop stupide des imbéciles qui se perdent à Corona
Le Japon est enfin terminé
Pourquoi "Shinkansen Tobira" est-il si étroit ...? Raison de cette convaincante
Alors, sortons l'article de Nikkei Cela a en quelque sorte obtenu Informations sur cette page.
https://www.nikkei.com/article/DGXMZO56522090X00C20A3000000/
<title>Plus de 100000 nouvelles infections corona deviennent une épidémie mondiale en 3 mois (photo)=Reuters):Nihon Keizai Shimbun</title>
Plus de 100000 nouvelles infections corona deviennent une épidémie mondiale en 3 mois (photo)=Reuters):Nihon Keizai Shimbun
Sauvegarder l'article
Uniquement disponible pour les membres payants. Vous pouvez également afficher les articles enregistrés sur votre smartphone ou tablette.
> Inscription des nouveaux membres
> Connexion
Enregistrer Evernote
L'inscription des membres est requise pour utiliser
> Inscription des nouveaux membres
> Connexion
Si vous souhaitez partager des articles dans des entreprises, réimprimer / dupliquer dans des documents de réunion, des commandes d'impression, etc., veuillez consulter le lien.
Cliquez ici pour plus de détails
Le nombre de personnes infectées par le nouveau virus corona augmente rapidement en Iran (capitale Téhéran)=Reuters
[Genève=Rintaro Hosokawa] Le nombre de personnes infectées par le nouveau virus corona dans le monde a dépassé 100 000. Environ trois mois après l'apparition du premier patient à Wuhan, dans la province du Hubei, en Chine en décembre 2019, il s'est rapidement propagé à d'autres pays d'Asie, en Europe et aux États-Unis. Même maintenant, la propagation de l'infection ne devrait pas prendre fin, et les restrictions de voyage et les événements à grande échelle sont annulés les uns après les autres. La menace des virus jette une grande ombre sur la vie des gens et les activités des entreprises.
Le nombre de personnes infectées a largement dépassé le syndrome respiratoire aigu sévère (SRAS) survenu en 2002-03 et le syndrome respiratoire du Moyen-Orient (MERS) survenu en 2012 et est devenu une épidémie mondiale.
Selon les données agrégées de l'Université Johns Hopkins aux États-Unis, le nombre de personnes infectées dans le monde est d'environ 102 000 (à 6 h 00 le 7 du Japon). Environ 80% de ceux-ci sont en Chine (continentale). Hormis la Chine, la Corée du Sud en compte le plus grand nombre, avec environ 6 600 personnes. Viennent ensuite l'Iran (environ 4750 personnes) et l'Italie (environ 4640 personnes). Le Japon a dépassé les 400 personnes.
Récemment, alors que le nombre de nouvelles infections a diminué en Chine, le nombre d'infections dans d'autres pays / régions a augmenté rapidement. Lors d'une conférence de presse le 6, Tedros, le secrétaire général de l'Organisation mondiale de la santé (OMS), s'est dit "profondément préoccupé" par la propagation mondiale. En particulier, il s'est dit vivement préoccupé par la propagation de l'infection dans les pays en développement où l'infrastructure médicale est vulnérable. Il a déclaré: "Je veux que tous les pays fassent de l'endiguement des virus une priorité absolue", et a appelé à de nouvelles mesures telles que le renforcement des systèmes médicaux et des mesures aux frontières.
La recherche sur les vaccins et les agents thérapeutiques a commencé dans chaque pays. Selon l'OMS, 20 vaccins sont actuellement en cours de développement et de nombreuses études cliniques sont en cours pour des agents thérapeutiques. Cependant, il existe de nombreux points peu clairs tels que l'infectivité de la nouvelle Corona. Certains disent que l'infection ralentira à mesure que la température monte vers l'été. Cependant, l'OMS a exhorté à ne pas se relâcher, déclarant: "Il n'y a aucune preuve que le virus disparaîtra en été, et nous devons supposer qu'il continuera à se propager."
En raison de la propagation de la nouvelle Corona, les restrictions de voyage et les annulations de voyages d'affaires et de voyages se répandent dans chaque pays. Les usines de pièces automobiles ont été contraintes de fermer dans le nord de l'Italie, où les infections sont endémiques. Nombreux sont ceux qui craignent que la circulation des personnes et des biens stagne rapidement et n’aura de graves répercussions sur l’économie mondiale. Le Fonds monétaire international (FMI) a indiqué que ses prévisions de croissance économique mondiale sur 20 ans pourraient être la croissance la plus faible en 11 ans depuis 2009, immédiatement après la crise financière.
Le 30 janvier, l'OMS a déclaré la nouvelle Corona «une urgence de santé publique de portée internationale». Environ un mois plus tard, le 28 février, le niveau de risque global a été porté au niveau le plus élevé de «très élevé» en quatre étapes.
Selon l'OMS, il est important de bien se laver les mains et d'essuyer régulièrement votre ordinateur avec un désinfectant pour éviter les infections. D'autre part, les personnes asymptomatiques n'ont pas besoin de porter de masque à des fins préventives et sont invitées à s'abstenir de toute utilisation excessive.
Sélectionnez un forfait gratuit / payant
Voici les membres
Sauvegarder l'article
Uniquement disponible pour les membres payants. Vous pouvez également afficher les articles enregistrés sur votre smartphone ou tablette.
> Inscription des nouveaux membres
> Connexion
Enregistrer Evernote
L'inscription des membres est requise pour utiliser
> Inscription des nouveaux membres
> Connexion
Si vous souhaitez partager des articles dans des entreprises, réimprimer / dupliquer dans des documents de réunion, des commandes d'impression, etc., veuillez consulter le lien.
Cliquez ici pour plus de détails
Top version électronique
communiqué de presse
Acceptation du Fonds de secours pour le typhon n ° 19
La version électronique est gratuite le premier mois! Cliquez ici pour plus de détails
Météo
Recherche de communiqués de presse
Liste de comptes
Correction / excuses
À ce stade, tout ce que vous avez à faire est d'ajouter le code du WC. WordCloud/yahoo_title.py
#$ python3 yahoo_title.py -d /usr/lib/aarch64-linux-gnu/mecab/dic/mecab-ipadic-neologd conversation_anzen.csv -s stop_words.txt
import requests
from bs4 import BeautifulSoup
import urllib3
import re
import argparse
from MeCab import Tagger
from wordcloud import WordCloud
import matplotlib.pyplot as plt
parser = argparse.ArgumentParser(description="convert csv")
parser.add_argument("input", type=str, help="csv file")
parser.add_argument("--dictionary", "-d", type=str, help="mecab dictionary")
parser.add_argument("--stop_words", "-s", type=str, help="stop words list")
args = parser.parse_args()
t = Tagger(" -d " + args.dictionary)
#url = "https://news.yahoo.co.jp"
url = "https://www.nikkei.com/article/DGXMZO56522090X00C20A3000000/"
stop_words = []
if args.stop_words:
for line in open(args.stop_words, "r", encoding="utf-8"):
stop_words.append(line.strip())
#Une fonction qui convertit une liste en chaîne
def join_list_str(list):
return ' '.join(list)
#Fonction d'exclusion de mots vides
def exclude_stopword(text):
changed_text = [token for token in text.lower().split(" ") if token != "" if token not in stop_words]
#S'il est laissé comme ci-dessus, il sera au format liste, alors convertissez-le en une chaîne de caractères délimitée par un blanc
changed_text = join_list_str(changed_text)
return changed_text
#Utilisez urllib3
http = urllib3.PoolManager()
r = http.request('GET', url)
yahoo = BeautifulSoup(r.data, 'html.parser')
wc = WordCloud(font_path="/home/muauan/.fonts/NotoSansCJKjp-Regular.otf")
sk=0
for title in yahoo.select("p"):
title = title.getText()
title = re.sub(r"[^un-龥-Hmm-0-9]", "", title)
if len(title)>50:
print("content{};{}".format(sk,title))
splitted = " ".join([x.split("\t")[0] for x in t.parse(title).splitlines()[:-1] if x.split("\t")[1].split(",")[0] not in ["Particule", "Verbe auxiliaire", "adverbe", "Coalm", "verbe"]])
splitted = exclude_stopword(splitted)
wc.generate(splitted)
plt.axis("off")
plt.title("content_{};".format(sk))
plt.tight_layout()
plt.imshow(wc)
plt.pause(0.05)
plt.savefig('./output_yahoo/yahoo{}_{}.png'.format(sk,title[0:10]))
plt.close()
sk += 1
En tant que mots vides, j'utilise également le fichier japanese.txt précédent.
Numéro d'article | Phrase | WordCloud |
---|---|---|
content0 | Rintaro Hosokawa, Geneb Le nombre de personnes infectées par le nouveau virus corona dans le monde a dépassé 100 000. Même maintenant, il n'y a aucune chance que la propagation de l'infection prenne fin, et la menace de virus tels que les restrictions de voyage et l'annulation d'événements à grande échelle jette une grande ombre sur la vie des gens et les activités des entreprises. | |
content1 | Le nombre de personnes infectées a largement dépassé le syndrome respiratoire aigu sévère survenu en 20023 et le syndrome respiratoire du Moyen-Orient survenu en 2012 et est devenu une épidémie mondiale. | |
content2 | Selon les données recueillies par l'Université John's Hopkins aux États-Unis, le nombre de personnes infectées dans le monde est d'environ 102 000 à 6 heures du matin le 7 du Japon. L'Iran compte environ 4750 habitants, l'Italie environ 4640 habitants et le Japon plus de 400 habitants. | |
content3 | Récemment, le nombre de nouvelles infections a diminué en Chine, mais le nombre d'infections dans d'autres pays augmente rapidement. Le secrétaire général de l'Organisation mondiale de la santé, Tedros, s'est dit profondément préoccupé par la propagation mondiale lors d'une conférence de presse le 6. Tous les pays qui se sont déclarés vivement préoccupés par la propagation de l'infection aux pays en développement dotés d'une infrastructure médicale particulièrement vulnérable ont demandé que le confinement des virus soit une priorité absolue et ont pris de nouvelles mesures telles que le renforcement des systèmes médicaux et des mesures aux frontières. Demandé de prendre | |
content4 | Selon les recherches sur les vaccins et les agents thérapeutiques dans chaque pays, 20 vaccins sont actuellement en cours de développement et de nombreuses recherches cliniques sont en cours pour des agents thérapeutiques.Toutefois, la nouvelle Corona présente de nombreux points flous comme l'infectiosité pour l'été prochain. Il y a aussi des voix selon lesquelles l'infection ralentira à mesure que la température augmente, mais rien ne prouve que le virus disparaîtra en été et il faut supposer qu'il continuera à se propager, et il a appelé à ne pas se détendre. | |
content5 | En raison de la propagation de la nouvelle Corona, les restrictions de voyage et les annulations de voyages d'affaires se répandent dans chaque pays. Dans le nord de l'Italie, où le nombre d'infections augmente rapidement, les mouvements de personnes et de marchandises dont les usines de pièces automobiles ont été forcées de fermer stagnent rapidement. Beaucoup craignent que ce ne soit un coup dur pour l'économie mondiale.Le Fonds monétaire international a indiqué qu'il s'agirait de la croissance la plus faible en 11 ans depuis 2009, immédiatement après la crise financière, en ce qui concerne les prévisions du taux de croissance de l'économie mondiale dans 20 ans. | |
content6 | Environ un mois après avoir déclaré la nouvelle Corona comme une urgence de santé publique de portée internationale le 30 janvier, le niveau de risque mondial a été élevé au plus haut niveau en quatre étapes le 28 février. Élevé | |
content7 | Selon le rapport, il est important de bien se laver les mains et d'essuyer régulièrement l'ordinateur avec un désinfectant pour prévenir les infections, mais les personnes sans symptômes n'ont pas besoin de porter un masque à des fins préventives et de l'utiliser de manière excessive. Demander à s'abstenir |
Je ne suis pas très satisfait, mais je pense que cela montre des mots qui représentent des phrases. Quant à savoir dans quelle mesure vous devriez être satisfait, je voudrais que vous traitiez la première phrase plus que les noms de personnes comme Genève, comme l'annulation de l'événement et l'incapacité de voir la convergence de la propagation de l'infection. .. ..
・ J'ai essayé de récupérer des articles de presse dans WordCloud ・ Il s'est avéré qu'il peut être converti presque en temps réel.
・ Je veux l'utiliser plus activement ・ Élargissez l'application du grattage
Recommended Posts