[PYTHON] Obtenez le titre de Yahoo News et analysez les sentiments

Obtenez le contenu de Yahoo News

Veuillez prendre la responsabilité d'acquérir le contenu.

from tqdm import tqdm
import urllib.parse
import time

jp_keyword = ''#Entrez un mot-clé de recherche
page_num=int()#()Entrez le nombre total de pages dans

#URL encoder le japonais
keyword = urllib.parse.quote(jp_keyword)

#Liste de titres
title_list=[]
#Liste des dates de publication
date_list=[]
for i in tqdm(range(1,page_num-1)):
    
    url="https://news.yahoo.co.jp/search/?p="+keyword+"&st=n&ei=UTF-8&b="+str(i)+"1"
    print(url)
    res = requests.get(url)
    #Laisser un espace pour ne pas surcharger le serveur
    time.sleep(2)
    #Créer un objet BeautifulSoup à partir du code HTML de la réponse
    soup = BeautifulSoup(res.content, 'html.parser')

    #Récupère la chaîne de la balise de titre
    title_text = soup.find_all('h2')
    for x in title_text:
        title_list.append(x.text)
    
    date_text=soup.find_all('span', class_="d")
    for x in date_text:
        date_list.append(x.text)
    

Créer une fonction pour effectuer une analyse des sentiments

Vous pouvez découvrir comment obtenir l'API en lisant le site suivant.

Démarrage rapide: paramètres de l'API Natural Language (https://cloud.google.com/natural-language/docs/setup?hl=ja) Utiliser les clés API (https://cloud.google.com/docs/authentication/api-keys?hl=ja)

Comment utiliser l'API

key=""#Entrez la clé API
#URL de l'API
url = 'https://language.googleapis.com/v1/documents:analyzeSentiment?key=' + key

def sentimental(text):
    header = {'Content-Type': 'application/json'}
    body = {
        "document": {
            "type": "PLAIN_TEXT",
            "language": "JA",#Spécifiez la langue
            "content": text
        },
        "encodingType": "UTF8"
    }

    #Recevez le résultat au format json.
    response = requests.post(url, headers=header, json=body).json()
    #Score de retour
    return response["documentSentiment"]["score"]

Mettez le score dans la liste des scores

score_list=[]
for word in tqdm(wordlist):
    score_list.append(sentimental(word))
import pandas as pd
df = pd.DataFrame()
df["word"]=title_list
df["date"]=date_list
df["score"]=score_list

Enregistrer le bloc de données dans le fichier pickle

import pickle
with open('sentimental_df.pickle', 'wb') as web:
    pickle.dump(df , web)

Extraire des données

import pickle
with open('sentimental_df.pickle', 'rb') as web:
    df = pickle.load(web)
    print (df)

référence

Utiliser les clés API (https://cloud.google.com/docs/authentication/api-keys?hl=ja) Analyse des émotions en utilisant l'API Google Natural Language avec Python Natural Language Améliorez l'efficacité du développement! Comment utiliser pickle avec Python [Pour les débutants] Encodage / décodage d'URL en Python (urllib.parse.quote, unquote) Démarrage rapide: paramètres de l'API Natural Language (https://cloud.google.com/natural-language/docs/setup?hl=ja)

Recommended Posts

Obtenez le titre de Yahoo News et analysez les sentiments
Obtenez le titre et la date de livraison de Yahoo! News en Python
[Python] Obtenez les principaux sujets de Yahoo News
[Django 2.2] Trier et obtenir la valeur de la destination de la relation
Analysons les émotions de Tweet en utilisant Chainer (1er)
Obtenez le nombre de chiffres
Je veux obtenir des informations sur le fonctionnement de Yahoo Route
L'histoire de Python et l'histoire de NaN
Obtenez le nombre de vues de Qiita
Remarque: obtenez les premier et dernier éléments de Python OrderedDict de manière non destructive
[Python] Comment obtenir le premier et le dernier jour du mois
Obtenir les attributs d'un objet
[Python] Obtenir la date de mise à jour d'un article d'actualité à partir de HTML
Obtenez le premier élément du jeu de requêtes
Obtenez et définissez la valeur du menu déroulant en utilisant Python et Selenium
Obtenez le nombre d'abonnés Youtube
J'ai essayé d'obtenir et d'analyser les données statistiques de la nouvelle Corona avec Python: données de l'Université John's Hopkins
Lisez l'image du graphique avec OpenCV et obtenez les coordonnées du point final du graphique
J'ai essayé de vérifier et d'analyser l'accélération de Python par Cython
Je veux analyser les sentiments des gens qui veulent se rencontrer et trembler
Recevez des nouvelles de chacune des trois principales entreprises de téléphonie mobile en utilisant Django et l'API News
Obtenez des visites d'articles et des likes avec l'API Qiita + Python
Obtenez le titre de la chanson à partir du titre de la vidéo que vous avez chanté
Obtenez et estimez la forme de la tête en utilisant Dlib et OpenCV avec python
Ceci et celui de la notation d'inclusion.
Obtenez la liste des colonnes et la liste des données de CASTable
Revoir le concept et la terminologie de la régression
Obtenez les débats parlementaires via l'API
L'histoire d'essayer deep3d et de perdre
Obtenez la valeur de la couche intermédiaire de NN
Obtenez le dernier jour du mois spécifié
[Python] Récupère le code de caractère du fichier
Obtenez le nom de fichier du répertoire (glob)
Obtenez l'adresse à partir de la latitude et de la longitude
[PowerShell] Obtenez la lecture de la chaîne de caractères
[Python] J'ai créé un code de scraping web qui acquiert automatiquement le titre de l'actualité et l'URL de Nihon Keizai Shimbun.
Obtenez le cours de l'action d'une entreprise japonaise avec Python et faites un graphique
Obtenez le dernier élément du tableau en fractionnant les chaînes en Python et PHP
Récupérer le contenu de git diff depuis python
À propos du comportement de copy, deepcopy et numpy.copy
Résumé des différences entre PHP et Python
Compréhension complète des concepts de Bellmanford et Dyxtra
[Python] Obtenir / modifier l'étiquette d'échelle de la figure
Récupérer l'appelant d'une fonction en Python
La réponse de "1/2" est différente entre python2 et 3
Organiser la signification des méthodes, des classes et des objets
Spécification de la plage des tableaux ruby et python
Changer la couleur des erreurs et avertissements Fabric
Obtenez le titre de la fenêtre du système X Window en Python
Obtenez le module lui-même et ajoutez des membres de manière dynamique
Comparez la vitesse d'ajout et de carte Python
[Python] Obtenez la dernière date de mise à jour du site Web
Obtenir uniquement la partie adresse de la carte réseau (eth0)
Description générale des notificateurs CPUFreq core et CPUFreq
Organisez l'utilisation super basique des Autotools et de pkg-config
J'ai lu et implémenté les variantes de UKR
Prise en compte des forces et faiblesses de Python
[Python] Get the day (anglais et japonais)