Si vous effectuez une recherche par mots-clés ou phrases qui vous intéressent, Google Actualités affichera 100 articles classés par pertinence et par date et heure de sortie. Afin de savoir comment les produits alimentaires à succès sont apparus, recherchez les actualités passées en recherchant des mots-clés et des phrases susceptibles d'être liés à l'aliment à succès, et vérifiez le degré d'intérêt croissant au moment de ces communiqués de presse sur Google Trends. Ce faisant, il semble que nous pouvons explorer le processus menant au succès. Il peut également être utilisé pour capturer des sujets qui mènent à de nouveaux hits. Dans le rapport précédent, j'ai présenté comment analyser Google News RSS en Python (analyseur de flux). Scraping Google News avec Python et édition avec R. Cependant, avec cette méthode, le texte de résumé est devenu le même que le texte du titre depuis octobre 2019 environ.
Par conséquent, cette fois, je présenterai un script qui utilise Beautiful Soup pour acquérir des informations d'article sur la page de résultats de recherche de Google Actualités. Contrairement à feedparser, qui fournit des informations sur l'article organisées, il est nécessaire de rechercher l'emplacement des informations sur l'article à partir de la page Web des résultats de la recherche et de spécifier les informations à extraire par des balises, des éléments et des attributs.
Ici, nous allons introduire une méthode pour rechercher les informations d'article que vous souhaitez récupérer avec Google Ghrome, et un script pour récupérer les informations d'article à partir des informations de structure de page obtenues à l'aide des requêtes de bibliothèque et de Beautful Soup.
Pour le mot de recherche, nous avons utilisé "Tapiru", qui a été sélectionné parmi les dix meilleurs des prix des nouveaux mots et des mots populaires 2019. Les résultats de la recherche ci-dessous s'affichent.
Pour examiner la structure de cette page, placez votre curseur sur le titre de l'article, faites un clic droit et cliquez sur Valider en bas du menu qui apparaît.
La configuration des éléments de la page HTML est affichée en haut à droite. À partir de cette fenêtre, identifiez l'emplacement des informations sur l'article et comprenez les balises et les attributs nécessaires pour obtenir les informations.
Si vous regardez le code HTML affiché, vous serez timide, mais les informations dont vous avez besoin sont toujours à proximité de cette zone bleu clair, il est donc important de rechercher soigneusement et de manière persistante. Juste en dessous de la zone bleu clair
Lorsque vous cliquez sur ▶, le calque inférieur s'ouvre et le texte du titre «# Tapiru English Savez-vous? ...» s'affiche. J'ai pu confirmer que les informations du premier article étaient écrites près de la zone bleu clair.
Donc, si vous recherchez la balise de regroupement "div" (voir la fin de la référence de phrase pour la balise div) sur la partie grise pour trouver la balise supérieure qui contient les informations de cet article
▼<div class="xrnccd"
Il semble y avoir des informations d'article que vous voulez dans cette couche inférieure, donc sélectionnez approximativement les informations d'environ 100 articles en utilisant "xrnccd" de la classe qui identifie cette balise comme le sélecteur de Beautiful Soup. Toutes les informations d'article recherchées par le script suivant peuvent être affectées aux articles.
articles = soup.select(".xrnccd")
Ensuite, trouvez et récupérez la partie où sont décrits le titre, le résumé, l'URL de l'article original et la date de sortie de chaque article. Le texte du titre "# Tapiru no English ..." est juste en dessous de la zone bleu clair.
Juste en dessous
Cliquez sur ▶ pour ouvrir le calque inférieur
<classe de portée = ・ ・ ・
Le texte des premières lignes de l'article était affiché juste en dessous. Il n'a pas été affiché sur la page Web des résultats de recherche, mais il a été masqué ici. C'est ce qu'on appelle un résumé.
Le script pour obtenir ce texte
summary = entry.find (" span "). Text
.Pour les informations sur la date de publication de l'article, cliquez sur ▶ de <div class = "Qmr ..." juste en dessous pour ouvrir la couche inférieure, et "datetime = 2019-12-13 ..." est directement sous "<time class =". eu.
Le script pour obtenir cette date / heure
time_elm = entry.find (" heure ")
.Enfin, l'url de la page de l'article, qui se trouve dans la partie bleu clair de la vérification. Cela signifie que les informations liées sont placées dans le titre de l'article.
<a class="VDXfz" jsname="hXuDdf" jslog="85008; 2:https://prtimes.jp/main/thml/rd/p/000001434.000011710.html;
C'est la partie de https: // ~. J'ai utilisé les deux scripts suivants. ~~
url_elm = entry.find("a")
~~ ~~url_elm = entry.find("a", class_= "VDXfz")
~~url_elm = entry.find("article")
link = url_elm.get("jslog")
Introduisons le script à travers. Utilisez lstrip () et rstrip () pour supprimer les caractères inutiles à la fin des informations acquises. S'il n'y a pas d'informations sur la date de publication, "0000-00-00" est remplacé à la place dans le traitement des exceptions. Les informations acquises sont converties en trame de données par les pandas de la bibliothèque et enregistrées dans un fichier csv.
2. Script de récupération des résultats de recherche Google Actualités
environnement
Windows10 Python 3.6.2
scénario
google_news
#Appeler la bibliothèque requise import pandas as pd #Pour enregistrer le résultat du scraping dans un fichier cvs au format de bloc de données import pprint #Pour afficher une partie du bloc de données from bs4 import BeautifulSoup #Analyse et extraction des informations de page Web acquises import requests #Obtenir des informations sur les pages Web import urllib #Obtenir le codage de l'URL des mots clés #Convertissez le mot de recherche "tapiru" en caractères et insérez-le entre les URL de la page de résultats de recherche. s = "Tapiru" s_quote = urllib.parse.quote(s) url_b4 = 'https://news.google.com/search?q=' + s_quote + '&hl=ja&gl=JP&ceid=JP%3Aja' #Obtenir des informations sur la page de résultats de recherche res = requests.get(url_b4) soup = BeautifulSoup(res.content, "html.parser") #Sélectionnez les informations pour tous les articles articles = soup.select(".xrnccd") #Obtenez les informations de chaque article à plusieurs reprises pour ~ enumerate et attribuez-les à la liste news = list() #Créer une liste vide pour l'affectation for i, entry in enumerate(articles, 1): title = entry.find("h3").text summary = entry.find("span").text summary = title + "。" + summary #url_elm = entry.find("a")Changé en url_elm = entry.find("article") link = url_elm.get("jslog") link = link.lstrip("85008; 2:") #Supprimer le bord gauche link = link.rstrip("; track:click") #Supprimer le bord droit time_elm = entry.find("time") try: #Gestion des exceptions ymd = time_elm.get("datetime") except AttributeError: ymd = "0000-00-00" ymd = ymd[0:10] ymd = ymd.replace("-", "/") #Remplacement sortkey = ymd[0:4] + ymd[5:7] + ymd[8:10] #Pour trier par date tmp = { #Stocké dans le type de dictionnaire "title": title, "summary": summary, "link": link, "published": ymd, "sortkey": sortkey } news.append(tmp) #Ajouter des informations pour chaque article à la liste #Convertir en bloc de données et enregistrer en tant que fichier csv news_df = pd.DataFrame(news) pprint.pprint(news_df.head()) #Affichez les 5 premières lignes pour vérifier les données filename = s + ".csv" news_df.to_csv(filename, encoding='utf-8-sig', index=False)
Le script de recherche Google Actualités est utilisé pour les articles suivants.
[Trouvez les graines des succès alimentaires dans la science des données! (1) - Le secret du succès Baschi de Lawson](https://blog.hatena.ne.jp/yamtakumol/yamtakumol.hatenablog.com/edit?entry= 26006613407003507)
[Trouvons les graines des succès culinaires! (2) --- "Nourriture complète" et "Recette enfant météo" de juin à août 2019](https://blog.hatena.ne.jp/yamtakumol/ yamtakumol.hatenablog.com/edit?entry=26006613422742161)
[Trouvons les graines des succès alimentaires! (3) - Septembre 2019 est la nourriture de Taiwan qui suit Tapiocati, en particulier le «thé au fromage»](https://blog.hatena.ne.jp/yamtakumol/ yamtakumol.hatenablog.com/edit?entry=26006613447159392)
Trouvons les graines des succès alimentaires! - Tarte aux pommes de terre sucrée en octobre 2019
** Graines de succès alimentaires attendues en 2020-Boules de fromage - **
référence:
Qu'est-ce que HTML? Si vous lisez ceci, même les débutants peuvent certainement écrire du HTML! Qu'est-ce qu'une classe div HTML? Commentaire avec des exemples compréhensibles en 5 minutes
Recommended Posts