Scraping avec Python (acquisition de données)

Cette fois, je vais obtenir les revenus du box-office du film sur wikipedia. Cliquez ici pour la préparation du grattage (https://qiita.com/h1r0_1126/items/0989a2daf169c19adada)

Pour le moment, le code source et les résultats sont les suivants.

from urllib.request import urlopen
from bs4 import BeautifulSoup

#Page à obtenir
html = urlopen('https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E6%AD%B4%E4%BB%A3%E8%88%88%E8%A1%8C%E5%8F%8E%E5%85%A5%E4%B8%8A%E4%BD%8D%E3%81%AE%E6%98%A0%E7%94%BB%E4%B8%80%E8%A6%A7')
bs = BeautifulSoup(html)

get_info = bs.select('table.wikitable tbody tr')
movies = []

for index, info in enumerate(get_info):
    for info_td in info.select('td'):
        if index <= 100:
            movies.append(info_td.text)
        else:
            break

print(movies)

résultat

['Enlevée comme par enchantement\n', 'Toho\n', '2001\n', '\n', '308.0\n', 'Titanesque\n', 'Renard du 20e siècle\n', '1997\n', '160.0\n', '262.0\n', 'Congelé[† 1]\n', 'Disney\n', '2014\n', '\n', '255.0\n', 'Quel est votre nom?\n', 'Toho\n', '2016\n', '\n', '250.3\n', 'Harry Potter et la pierre du sage\n', 'Warner\n', '2001\n', '\n', '203.0\n', 'Le château en mouvement de Howl\n', 'Toho\n', '2004\n', '\n', '196.0\n', 'Princesse Mononoke\n', 'Toho\n', '1997\n', '113.0\n', '193.0\n', 'Dancing Great Investigation Line LE FILM 2 Bloquez le Rainbow Bridge![† 2]\n', 'Toho\n', '2003\n', '\n', '173.5\n', 'Harry Potter et la salle secrète[† 3]\n', 'Warner\n', '2002\n', '\n', '173.0\n', 'Avatar\n', 'Renard du 20e siècle\n', '2009\n', '\n', '156.0\n', 'Ponyo sur la falaise\n', 'Toho\n', '2008\n', '\n', '155.0\n', 'Dernier samouraï\n', 'Warner\n', '2003\n', '\n', '137.0\n', 'E.T.[† 4][ † 5]\n', 'CIC\n', '1982\n', '96.2\n', '135.0\n', 'Armageddon\n', 'Disney\n', '1998\n', '83.5\n', '135.0\n', 'Harry Potter et le prisonnier d'Azkaban\n', 'Warner\n', '2004\n', '\n', '135.0\n', 'Anna et la reine des neiges 2\n', 'Disney\n', '2019\n', '\n', '133.5\n', 'Rhapsodie bohémienne\n', 'Renard du 20e siècle\n', '2018\n', '\n', '131.0\n', 'parc jurassique[† 6]\n', 'UIP\n', '1993\n', '83.0\n', '128.5\n', 'Star Wars épisode 1/menace fantôme\n', 'Renard du 20e siècle\n', '1999\n', '78.0\n', '127.0\n', 'la belle et la Bête\n', 'Disney\n', '2017\n', '\n', '124.0\n', 'Aladdin\n', 'Disney\n', '2019\n', '\n', '121.6\n', 'Sans vent\n', 'Toho\n', '2013\n', '\n', '120.2\n', 'Alice au pays des merveilles\n', 'Disney\n', '2010\n', '\n', '118.0\n', 'Guerres des étoiles/Éveil de la force\n', 'Disney\n', '2015\n', '\n', '116.3\n', 'Histoire de l'Antarctique\n', 'ヘラルド・Toho\n', '1983\n', '59.0\n', '110.0\n', 'Matrix Reloaded\n', 'Warner\n', '2003\n', '\n', '110.0\n', 'Trouver Nimo\n', 'Disney\n', '2003\n', '\n', '110.0\n', 'Harry Potter et la coupe de feu\n', 'Warner\n', '2005\n', '\n', '110.0\n', 'pirates des Caraïbes/Fin du monde\n', 'Disney\n', '2007\n', '\n', '109.0\n', 'Toy Story 3\n', 'Disney\n', '2010\n', '\n', '108.0\n', 'Le jour de l'indépendance\n', 'Renard du 20e siècle\n', '1996\n', '66.5\n', '106.5\n', 'le Seigneur des Anneaux/Retour du roi\n', 'Héraut Shochiku\n', '2004\n', '\n', '103.2\n', 'Dancing Great Investigation Line LE FILM\n', 'Toho\n', '1998\n', '53.0\n', '101.0\n', 'Histoire de jouets 4\n', 'Disney\n', '2019\n', '\n', '100.9\n', 'pirates des Caraïbes/Coffre du mort\n', 'Disney\n', '2006\n', '\n', '100.2\n', 'Histoire de chaton\n', 'Toho\n', '1986\n', '54.0\n', '98.0\n', 'Mission:Impossible 2\n', 'UIP\n', '2000\n', '\n', '97.0\n', 'Harry Potter et les reliques de la mort PART2\n', 'Warner\n', '2011\n', '\n', '96.7\n', 'A.I.[† 7]\n', 'Warner\n', '2001\n', '\n', '96.6\n', 'Monde jurassique\n', 'Toho東和\n', '2015\n', '\n', '95.3\n', 'Retour vers le futur PART2\n', 'UIP\n', '1989\n', '55.3\n', '95.0\n', 'Monde perdu/parc jurassique\n', 'UIP\n', '1997\n', '58.0\n', '95.0\n', 'Harry Potter et les chevaliers des oiseaux immortels\n', 'Warner\n', '2007\n', '\n', '94.0\n', 'Monsters Inc\n', 'Disney\n', '2002\n', '\n', '93.7\n', 'Détective Conan Navy Blue Fist\n', 'Toho\n', '2019\n', '\n', '93.7\n', 'Guerres des étoiles エピソード2/Attaque de clone\n', 'Renard du 20e siècle\n', '2002\n', '\n', '93.5\n', 'Code de version du film bleu-Docteur Heli Emergency Lifesaving-\n', 'Toho\n', '2018\n', '\n', '93.2\n', 'Emprunteur Arrietty\n', 'Toho\n', '2010\n', '\n', '92.5\n', 'Le ciel et la terre[† 8]\n', 'Toei\n', '1990\n', '50.5\n', '92.0\n', 'Baymax\n', 'Disney\n', '2014\n', '\n', '91.8\n', 'Détective Conan Zero Enforcer\n', 'Toho\n', '2018\n', '\n', '91.8\n', 'Guerres des étoiles エピソード3/La vengeance des Sith\n', 'Renard du 20e siècle\n', '2005\n', '\n', '91.7\n', 'le Seigneur des Anneaux\n', 'Héraut Shochiku\n', '2002\n', '\n', '90.7\n', 'Le code de De Vinci\n', 'Sony PE\n', '2006\n', '\n', '90.5\n', 'José[† 9]\n', 'CIC\n', '1975\n', '50.2\n', '90.0\n', 'Université de monstres\n', 'Disney\n', '2013\n', '\n', '89.6\n', 'pirates des Caraïbes/Fontaine de vie\n', 'Disney\n', '2011\n', '\n', '88.7\n', 'Terminator 2\n', 'Toho東和\n', '1991\n', '57.5\n', '87.9\n', 'Éternel 0\n', 'Toho\n', '2013\n', '\n', '87.6\n', 'matrice\n', 'Warner\n', '1999\n', '50.0\n', '87.0\n', 'ROOKIES -diplômé-\n', 'Toho\n', '2009\n', '\n', '85.5\n', 'Évitez l'amour au centre du monde\n', 'Toho\n', '2004\n', '\n', '85.0\n', 'STAND BY ME Doraemon\n', 'Toho\n', '2014\n', '\n', '83.8\n', 'Shin Godzilla\n', 'Toho\n', '2016\n', '\n', '82.5\n', 'Dunhuang\n', 'Toho\n', '1988\n', '45.0\n', '82.0\n', 'Retour vers le futur PART3\n', 'UIP\n', '1990\n', '47.5\n', '82.0\n', 'Terminator 3\n', 'Toho東和\n', '2003\n', '\n', '82.0\n', 'HERO\n', 'Toho\n', '2007\n', '\n', '81.5\n', 'impact profond\n', 'UIP\n', '1998\n', '47.2\n', '81.0\n', 'Monde jurassique/Royaume de feu\n', 'Toho東和\n', '2018\n', '\n', '80.6\n', 'LE DERNIER MESSAGE Singe de mer\n', 'Toho\n', '2010\n', '\n', '80.4\n', 'Harry Potter et le prince mystérieux\n', 'Warner\n', '2009\n', '\n', '80.0\n', 'le Seigneur des Anneaux/Deux tours\n', 'Héraut Shochiku\n', '2003\n', '\n', '79.0\n', 'Le secret de la naissance du film Yokai Watch Nyan!\n', 'Toho\n', '2014\n', '\n', '78.0\n', 'Hommes F que des fleurs\n', 'Toho\n', '2008\n', '\n', '77.5\n', 'Contes de Earthsea[† 10]\n', 'Toho\n', '2006\n', '\n', '76.9\n', 'Sixième sens\n', 'Toho東和\n', '1999\n', '45.0\n', '76.8\n', 'Zootopie\n', 'Disney\n', '2016\n', '\n', '76.3\n', 'Homme araignée\n', 'Sony PE\n', '2002\n', '\n', '75.0\n', 'Guerres des étoiles/Dernier Jedi\n', 'Disney\n', '2017\n', '\n', '75.0\n', 'Indy Jones/Dernière guerre sainte\n', 'UIP\n', '1989\n', '44.0\n', '74.0\n', 'Singe de mer BRAVE HEARTS\n', 'Toho\n', '2012\n', '\n', '73.3\n', 'Dancing Great Investigation Line LE FILM3 ヤツらを解放せよ!\n', 'Toho\n', '2010\n', '\n', '73.1\n', 'Le voyage de la bête fantastique et du sorcier[† 11]\n', 'Warner\n', '2016\n', '\n', '73.1\n', 'Phantom voleur colle minion grande évasion\n', 'Toho東和\n', '2017\n', '\n', '73.1\n', 'Guerres des étoiles/L'aube de Skywalker\n', 'Disney\n', '2019\n', '\n', '72.7\n', 'Contre-attaque du monstre de poche Miu Two\n', 'Toho\n', '1998\n', '41.5\n', '72.4\n', 'Mourir dur 3\n', 'Renard du 20e siècle\n', '1995\n', '48.0\n', '72.0\n', 'Spider-Man 3\n', 'Sony PE\n', '2007\n', '\n', '71.2\n', 'LIMITE OF LOVE singe de mer\n', 'Toho\n', '2006\n', '\n', '71.0\n', 'la vitesse\n', 'Renard du 20e siècle\n', '1994\n', '45.0\n', '70.3\n', 'Chasseurs de fantômes\n', 'Columbia\n', '1984\n', '41.0\n', '70.0\n', 'Océans 11\n', 'Warner\n', '2002\n', '\n', '69.0\n', 'Chanson d'amour cramoisie du célèbre détective Conan\n', 'Toho\n', '2017\n', '\n', '68.9\n', 'Pearl Harbor\n', 'Disney\n', '2001\n', '\n', '68.8\n', 'ONE PIECE FILM Z\n', 'Toei\n', '2012\n', '\n', '68.7\n', 'Histoire de Narnia/Chapitre 1:Lion et sorcière\n', 'Disney\n', '2006\n', '\n', '68.6\n', 'Harry Potter et les reliques de la mort PART1\n', 'Warner\n', '2010\n', '\n', '68.6\n', 'Trouver Dolly\n', 'Disney\n', '2016\n', '\n', '68.3\n', 'pirates des Caraïbes/Pirates maudits\n', 'Disney\n', '2003\n', '\n', '68.0\n']

Commentaire

html = urlopen('https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E6%AD%B4%E4%BB%A3%E8%88%88%E8%A1%8C%E5%8F%8E%E5%85%A5%E4%B8%8A%E4%BD%8D%E3%81%AE%E6%98%A0%E7%94%BB%E4%B8%80%E8%A6%A7')

Spécifiez la page pour obtenir les données avec le code ci-dessus. Cette fois, j'utiliserai wikipedia.

get_info = bs.select('table.wikitable tbody tr')

Ici, récupérez le contenu tr de la table avec l'attribut <class = "wikitable">. Cette fois, j'ai spécifié la partie suivante de wikipedia 無題.png

for index, info in enumerate(get_info):
    for info_td in info.select('td'):
        if index <= 100:
            movies.append(info_td.text)
        else:
            break

Tournez le contenu tr acquis et n'ajoutez que les caractères du contenu td au tableau Vous pouvez obtenir le résultat en l'affichant avec impression à la fin.

La prochaine fois, je créerai un graphique à partir des données acquises. Peut-être que d3.js est utilisé

Recommended Posts

Scraping avec Python (acquisition de données)
Grattage avec Python
Grattage avec Python
Essayez de gratter avec Python.
Grattage avec Python + PhantomJS
Grattage avec du sélénium [Python]
Scraping avec Python + PyQuery
Analyse de données avec Python
Scraping RSS avec Python
Web scraping avec python + JupyterLab
Grattage au sélénium en Python
Grattage avec Selenium + Python Partie 1
Grattage avec chromedriver en python
Grattage festif avec Python, scrapy
Obtenez des données Youtube avec python
Grattage avec du sélénium en Python
Grattage avec Tor en Python
Scraping prévisions météorologiques avec python
Grattage avec Selenium + Python Partie 2
J'ai essayé de gratter avec du python
Web scraping débutant avec python
Lire des données json avec python
Analyse de données pour améliorer POG 1 ~ Web scraping avec Python ~
[Scraping] Scraping Python
Essayez de gratter avec Python + Beautiful Soup
Acquisition de données à l'aide de l'API googlemap de python
Scraping avec Node, Ruby et Python
Scraping avec Selenium en Python (Basic)
Grattage avec Python, Selenium et Chromedriver
Web scraping avec Python Première étape
J'ai essayé webScraping avec python.
Grattage avec Python et belle soupe
[Python] Obtenez des données économiques avec DataReader
Structure de données Python apprise avec la chimioinfomatique
Faisons du scraping d'images avec Python
Obtenez les tendances Qiita avec le scraping Python
Visualisez facilement vos données avec Python seaborn.
Traiter les données Pubmed .xml avec python
Analyse de données à partir de python (visualisation de données 1)
Mémo d'apprentissage "Scraping & Machine Learning avec Python"
Analyse de données à partir de python (visualisation de données 2)
Obtenez des informations météorologiques avec Python et le grattage
Application de Python: Nettoyage des données Partie 2: Nettoyage des données à l'aide de DataFrame
Exploration Web, scraping Web, acquisition de caractères et sauvegarde d'image avec python
Recevoir des données textuelles de mysql avec python
Grattage au sélénium ~ 2 ~
[Note] Obtenir des données de PostgreSQL avec Python
Grattage WEB avec Python (pour mémo personnel)
Statistiques avec python
Traiter les données Pubmed .xml avec python [Partie 2]
Obtenez des données alimentaires avec l'API Amazon (Python)
Python avec Go
Essayez de travailler avec des données binaires en Python
Automatisez des tâches simples avec Python Part1 Scraping
Analyse de données python
Premiers pas avec Python Web Scraping Practice
Générer des données de test japonais avec Python Faker
Twilio avec Python
Convertir des données Excel en JSON avec python
Intégrer avec Python
Téléchargez les données de cours des actions japonaises avec Python