[PYTHON] Premiers pas avec le Web Scraping

Grattage

Une petite méthode primitive

Lors de l'extraction d'une partie spécifique d'une page Web

Python3


import requests
import json

r = requests.get('https://nikkei225jp.com/chart/')
text = r.text #Renvoie un objet html

date    = text.split('<div class=wtimeT>')[1].split('</div>')[0]
nikkei   = text.split('<div class=if_cur>')[1].split('</div>')[0].replace(',','')
dau       = text.split('<div class=if_cur>')[2].split('</div>')[0].replace(',','')
kawase = text.split('<div class=if_cur>')[3].split('</div>')[0].replace(',','')

print('aujourd'hui',date,'est')
print ('Cours de l'action Nikkei',nikkei, 'C'est un cercle')
print ('Cours moyen de l'action Dow', dau, 'C'est un cercle')
print ('Échange de dollars', kawase,'C'est un cercle')

a=open('shares.csv','w')
a.write('Date et l'heure,Moyenne de l'action Nikkei,Cours moyen de l'action Dow,Échange de dollars\n')
a.write(date+','+nikkei+','+dau+','+kawase+'\n')
a.close()

Résultat (ligne de commande)


Aujourd'hui, c'est 2019/03/23
Le cours de l'action Nikkei est 21627.C'est 34 yens
Le cours moyen de l'action Dow est de 25502.32 yens
Le dollar d'échange est 109.C'est 93 yens

Je pense qu'il a été imprimé comme ça

Résultats (partages.csv)


Date et l'heure,Moyenne de l'action Nikkei,Cours moyen de l'action Dow,Échange de dollars
2019/03/23,21627.34,25502.32,109.93

J'ai confirmé qu'un fichier comme celui-ci a été créé.

Ce que le programme a fait

De ce site de stock Nikkei *** Date et heure, cours moyen de l'action Nikkei, moyenne Dow, dollar d'échange *** Des informations telles que celles qui ont été extraites, imprimées et enregistrées.

スクリーンショット 2019-03-23 2.37.50.png Citation: https://nikkei225jp.com/chart/

De cette page スクリーンショット 2019-03-23 2.38.10.png J'extrais les informations de cette partie

Web Scraping a également un moyen pratique d'utiliser *** Beautiful Soup *** ou *** Selenium ***

Cette fois, nous avons adopté la méthode primitive des *** requêtes *** uniquement ~

Comme un flux

r = requests.get('URL de la page à gratter')

La réponse (informations de page) renvoyée dans est stockée dans la variable *** r ***

text = r.text

Récupérer au format texte avec le corps (corps HTML) de la réponse *** r *** renvoyé dans

スクリーンショット 2019-03-23 3.26.59.png

Par exemple, *** Prix moyen de l'action Nikkei *** 21627,34 ***

Si vous souhaitez extraire

Sélectionnez les informations que vous souhaitez extraire comme indiqué ci-dessus Recherche de "** Valider " ou " Afficher la source de la page **"

<div class="if_cur">21,627.34</div><img width="674" alt="Capture d'écran 2020-04-14 18.27.54.png " src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/377231/64fddc0e-29c5-8d2a-09ee-bb3656fc0895.png ">

De cette façon, la classe *** if_cur *** est dans un état sandwich.

nikkei   = text.split('<div class=if_cur>')[1].split('</div>')[0].replace(',','')

Le contenu est extrait comme *** nikkei *** dans cette ligne.

Exemple 2) Exemple d'extraction de date et d'heure スクリーンショット 2020-04-14 18.27.54.png

.replace (',', '') supprime simplement la virgule (,). Parce que la virgule à la place du nombre est un obstacle. (Si vous souhaitez convertir en type int ultérieurement et effectuer l'opération, vous ne pouvez pas convertir en type int si la virgule reste)

*** Moyenne Dow ***, *** Dollar d'échange ***, *** Heure *** est la même chose

La méthode la plus primitive mais capable de gérer divers modèles.

Méthode intelligente

Cette fois, ** extrayez tous les liens (URL) qui existent sur la page du cours moyen de l'action Nikkei.

Cette fois, si je dessine le code pour extraire un par un comme avant, il n'y a pas de netteté

Pour le moment, un modèle qui extrait toutes les balises *** a *** (balises avec URL) et les stocke dans un tableau

*** Beautiful Soup *** est maintenant

$ pip install beautifulsoup4

Je viens d'ajouter le code d'acquisition *** a *** tag au code précédent

import requests
import json
from bs4 import BeautifulSoup

r = requests.get('https://nikkei225jp.com/chart/')
text = r.text
date    = text.split('<div class=wtimeT>')[1].split('</div>')[0]
nikkei   = text.split('<div class=if_cur>')[1].split('</div>')[0].replace(',','')
dau       = text.split('<div class=if_cur>')[2].split('</div>')[0].replace(',','')
kawase = text.split('<div class=if_cur>')[3].split('</div>')[0].replace(',','')

print('aujourd'hui',date,'est')
print ('Cours de l'action Nikkei',nikkei, 'C'est un cercle')
print ('Cours moyen de l'action Dow', dau, 'C'est un cercle')
print ('Échange de dollars', kawase,'C'est un cercle')

a=open('shares.csv','w')
a.write('Date et l'heure,Moyenne de l'action Nikkei,Cours moyen de l'action Dow,Échange de dollars\n')
a.write(date+','+nikkei+','+dau+','+kawase+'\n')
a.close()


#Ci-dessous le montant supplémentaire
soup = BeautifulSoup(r.text , "html.parser") 

for a in soup.find_all('a'):
    if 'http' in str(a): #Cette fois, il est limité à la balise a avec http
        #print(a.text) #Contenu d'une balise (titre)
        print(a.attrs['href']) #URL

Résultat (ligne de commande)


Aujourd'hui, c'est 2019/03/23
Le cours de l'action Nikkei est 21627.C'est 34 yens
Le cours moyen de l'action Dow est de 25502.32 yens
Le dollar d'échange est 109.C'est 93 yens
http://xn--u9jt60g57a227ciso.com/
http://quote.jpx.co.jp/jpx/template/quote.cgi?F=tmp/real_index&QCODE=155
http://klug-fx.jp/holiday/
https://jp.investing.com/holiday-calendar/
https://db.225225.jp/
https://nikkei225jp.com/chart/
https://nikkei225jp.com/nasdaq/
https://nikkei225jp.com/fx/
https://ch225.com/
https://225225.jp/
https://nikkei225jp.com/cme/
https://adr-stock.com/
http://fx.minkabu.jp/indicators/calendar
http://jp.reuters.com/investing/news/economic
http://www3.nhk.or.jp/news/html/20190323/k10011858101000.html
http://moneyzine.jp/article/detail/215915
http://feeds.reuters.com/~r/reuters/JPBusinessNews/~3/19cDqM88PGE/graphics-frb-idJPKCN1R30VK
http://feeds.reuters.com/~r/reuters/JPBusinessNews/~3/wqkbZgbeMMA/asia-companies-outlook-analysis-idJPKCN1R30Y2
http://www.asahi.com/articles/ASM3D3S9TM3DULFA00N.html?ref=rss
http://diamond.jp/articles/-/197806
http://www.asahi.com/articles/ASM3R1SPZM3RUHBI003.html?ref=rss
https://zai.diamond.jp/list/fxnews/detail?id=312805&utm_source=zaifxrss&utm_medium=rss&utm_term=zaifxnews&utm_campaign=zaifxrss
https://zai.diamond.jp/list/fxnews/detail?id=312804&utm_source=zaifxrss&utm_medium=rss&utm_term=zaifxnews&utm_campaign=zaifxrss
https://zai.diamond.jp/list/fxnews/detail?id=312803&utm_source=zaifxrss&utm_medium=rss&utm_term=zaifxnews&utm_campaign=zaifxrss
https://zai.diamond.jp/list/fxnews/detail?id=312802&utm_source=zaifxrss&utm_medium=rss&utm_term=zaifxnews&utm_campaign=zaifxrss
https://zai.diamond.jp/list/fxnews/detail?id=312801&utm_source=zaifxrss&utm_medium=rss&utm_term=zaifxnews&utm_campaign=zaifxrss
http://www3.nhk.or.jp/news/html/20190322/k10011857501000.html
http://diamond.jp/articles/-/197800
http://feeds.reuters.com/~r/reuters/JPMarketNews/~3/k7hVYUD0Rlw/usa-trump-russia-idJPL3N21949Q
http://feeds.reuters.com/~r/reuters/JPBusinessNews/~3/7SX2E12xQqA/ny-market-summary-0322-idJPKCN1R32TP
https://www.nikkei.com/article/DGXLASM7IAA05_T20C19A3000000/
http://feeds.reuters.com/~r/reuters/JPCompanyNews/~3/vP8IyPxDb_w/EU-HUAWEI-TECH--idJPL3N21946T
http://feeds.reuters.com/~r/reuters/JPBusinessNews/~3/dhPXy0bfxg8/ny-stx-us-idJPKCN1R32SJ
http://feeds.reuters.com/~r/reuters/JPBusinessNews/~3/f5sMkCorXO8/ny-forex-idJPKCN1R32SB
http://feeds.reuters.com/~r/reuters/JPMarketNews/~3/fYZ-Sat0U3Y/ny-markets-summary-idJPL3N2194BF
http://feeds.reuters.com/~r/reuters/JPCompanyNews/~3/unMMYgBSv38/ny-stx-us-idJPL3N21946R
http://feeds.reuters.com/~r/reuters/JPCompanyNews/~3/FIxyRRMByHY/pinterest-ipo-idJPL3N21949V
https://zai.diamond.jp/list/fxnews/detail?id=312800&utm_source=zaifxrss&utm_medium=rss&utm_term=zaifxnews&utm_campaign=zaifxrss
https://www.nikkei.com/article/DGXLASH2ICE01_T20C19A3000000/
http://www.traders.co.jp/foreign_stocks/market_s.asp#today
http://www.gaitame.com/market/yosoku.html
http://market.fisco.co.jp/update/index.jsp
http://www.traderswebfx.jp/news/default.aspx?ID=7#newslist
http://kabuyoho.ifis.co.jp/
http://www.tokyoipo.com/top/iposche/index.php?j_e=J
http://klug-fx.jp/holiday/
https://jp.investing.com/holiday-calendar/
http://world.honda.com/worldclock/
https://news.yahoo.co.jp/search?p=%E6%97%A5%E7%B5%8C%E5%B9%B3%E5%9D%87&ei=utf-8&fr=news_sw
https://www.google.co.jp/search?hl=ja&gl=jp&tbm=nws&authuser=0&q=%E6%97%A5%E7%B5%8C%E5%B9%B3%E5%9D%87&oq=%E6%97%A5%E7%B5%8C%E5%B9%B3%E5%9D%87&gs_l=news-cc.1.0.43j43i53.2284.2284.0.5545.1.1.0.0.0.0.56.56.1.1.0...0.0...1ac.1.oMorwBF68ss#q=%E6%97%A5%E7%B5%8C%E5%B9%B3%E5%9D%87&hl=ja&gl=jp&authuser=0&tbm=nws&tbs=sbd:1
http://chart.fisco.co.jp/fisco/cgi-bin/index.cgi
http://chart.fisco.co.jp/fisco/cgi-bin/index.cgi
https://www.dukascopy.jp/

Vous pouvez voir que les liens de la page sont pris.

#print(a.text) #Contenu d'une balise (titre)

Si vous commentez la partie, vous pouvez obtenir le titre de la balise *** a *** ~

Aujourd'hui, c'est 2019/03/23
Le cours de l'action Nikkei est 21627.C'est 34 yens
Le cours moyen de l'action Dow est de 25502.32 yens
Le dollar d'échange est 109.C'est 93 yens
Stock mondial.com
http://xn--u9jt60g57a227ciso.com/
est
http://quote.jpx.co.jp/jpx/template/quote.cgi?F=tmp/real_index&QCODE=155
[Klug]
http://klug-fx.jp/holiday/
[Investing]
https://jp.investing.com/holiday-calendar/
Conditions de marché en temps réel Pièces
https://db.225225.jp/
Moyenne de l'action Nikkei
https://nikkei225jp.com/chart/
Cours moyen de l'action Dow
https://nikkei225jp.com/nasdaq/
Échange de yens dollar
https://nikkei225jp.com/fx/
Stock mondial
https://ch225.com/
Téléphone portable
https://225225.jp/
CME
https://nikkei225jp.com/cme/
ADR
https://adr-stock.com/
L'échange de tout le monde
http://fx.minkabu.jp/indicators/calendar
Reuters
http://jp.reuters.com/investing/news/economic
Mouvement visant à renforcer les services de survie en élargissant l'acceptation des ressources humaines étrangères
http://www3.nhk.or.jp/news/html/20190323/k10011858101000.html
Dépôts bancaires, cycle de profit bancaire après l'introduction des taux d'intérêt négatifs, qui ont dépassé le même mois l'année dernière pendant 149 mois consécutifs ...
http://moneyzine.jp/article/detail/215915
Angle:Conversion de FRB en pigeons, impact positif sur les ménages américains
http://feeds.reuters.com/~r/reuters/JPBusinessNews/~3/19cDqM88PGE/graphics-frb-idJPKCN1R30VK
concentrer:Les investissements en capital des entreprises asiatiques diminuent pour la première fois en 3 ans en raison du ralentissement en Chine
http://feeds.reuters.com/~r/reuters/JPBusinessNews/~3/wqkbZgbeMMA/asia-companies-outlook-analysis-idJPKCN1R30Y2
Proposition de système de subvention pour le soutien aux centrales nucléaires Le Ministère de l'Économie, du Commerce et de l'Industrie vise à établir en 2020
http://www.asahi.com/articles/ASM3D3S9TM3DULFA00N.html?ref=rss
Le marché de New York a fortement chuté le 22-Dernières actualités boursières
http://diamond.jp/articles/-/197806
NY Dow chute brusquement, dépréciation de 460 dollars
http://www.asahi.com/articles/ASM3R1SPZM3RUHBI003.html?ref=rss
Afflux de fonds pour éviter les risques en raison de la croissance continue, des bas cours des actions et des prix élevés des obligations
https://zai.diamond.jp/list/fxnews/detail?id=312805&utm_source=zaifxrss&utm_medium=rss&utm_term=zaifxnews&utm_campaign=zaifxrss
Les contrats à terme sur l'or de New York continuent de croître et les fonds d'évitement des risques affluent grâce aux bas cours des actions et aux prix élevés des obligations
https://zai.diamond.jp/list/fxnews/detail?id=312804&utm_source=zaifxrss&utm_medium=rss&utm_term=zaifxnews&utm_campaign=zaifxrss
Les craintes que les contrats à terme sur le pétrole brut de New York continuent de baisser et que la détérioration de l'économie mondiale s'aggrave
https://zai.diamond.jp/list/fxnews/detail?id=312803&utm_source=zaifxrss&utm_medium=rss&utm_term=zaifxnews&utm_campaign=zaifxrss
Tendances du marché de New York(Fin de transaction):Dow 460.19 dollars pas cher(Dernières nouvelles), Futures sur pétrole brut 0.94 dollars pas cher
https://zai.diamond.jp/list/fxnews/detail?id=312802&utm_source=zaifxrss&utm_medium=rss&utm_term=zaifxnews&utm_campaign=zaifxrss
Yen contre les devises mondiales:Contre poupée 0.81%Haut, contre Euro 1.43%Haute
https://zai.diamond.jp/list/fxnews/detail?id=312801&utm_source=zaifxrss&utm_medium=rss&utm_term=zaifxnews&utm_campaign=zaifxrss
Création d'un texte pour l'acquisition d'un nouveau statut de résidence pour les ressources humaines étrangères Groupe industriel d'entreprises de restauration
http://www3.nhk.or.jp/news/html/20190322/k10011857501000.html
La BCE n'a pas l'intention d'émettre de la monnaie numérique=Directeur de Melshu [Fisco Bitcoin New ...
http://diamond.jp/articles/-/197800
UPDATE 1-Le procureur spécial américain soumet un rapport d'enquête pour la Russie présumée Aucune autre proposition de poursuite
http://feeds.reuters.com/~r/reuters/JPMarketNews/~3/k7hVYUD0Rlw/usa-trump-russia-idJPL3N21949Q
Marché d'été de New York(Le 22)
http://feeds.reuters.com/~r/reuters/JPBusinessNews/~3/7SX2E12xQqA/ny-market-summary-0322-idJPKCN1R32TP
NY yen, répulsion 1 dollar=109,90 yens?Se termine à 110,00 yens, le yen se renforce pour la première fois depuis un mois
https://www.nikkei.com/article/DGXLASM7IAA05_T20C19A3000000/
renvoyer-EXCLUSIVE-La Commission européenne fera une proposition de partage de données sans éliminer le fairway de la 5G=Seki ...
http://feeds.reuters.com/~r/reuters/JPCompanyNews/~3/vP8IyPxDb_w/EU-HUAWEI-TECH--idJPL3N21946T
Le marché boursier américain plonge, le ralentissement économique mondial s'intensifie
http://feeds.reuters.com/~r/reuters/JPBusinessNews/~3/dhPXy0bfxg8/ny-stx-us-idJPKCN1R32SJ
La poupée baisse face au yen et les inquiétudes économiques augmentent en raison du renversement des taux d'intérêt longs et courts américains=Marché NY
http://feeds.reuters.com/~r/reuters/JPBusinessNews/~3/f5sMkCorXO8/ny-forex-idJPKCN1R32SB
Marché d'été de New York(Le 22)
http://feeds.reuters.com/~r/reuters/JPMarketNews/~3/fYZ-Sat0U3Y/ny-markets-summary-idJPL3N2194BF
Marché boursier américain=Chute soudaine, ralentissement économique mondial
http://feeds.reuters.com/~r/reuters/JPCompanyNews/~3/unMMYgBSv38/ny-stx-us-idJPL3N21946R
UPDATE 1-Pintarest de partage d'images aux États-Unis s'applique à l'introduction en bourse, est-ce 100 millions de dollars?
http://feeds.reuters.com/~r/reuters/JPCompanyNews/~3/FIxyRRMByHY/pinterest-ipo-idJPL3N21949V
NY Marquette Digest ・ 22e Prix de l'action fortement bas ・ Euro bas ・ Lira plongé
https://zai.diamond.jp/list/fxnews/detail?id=312800&utm_source=zaifxrss&utm_medium=rss&utm_term=zaifxnews&utm_campaign=zaifxrss
Aperçu des contrats à terme sur actions japonaises Shikago 22e
https://www.nikkei.com/article/DGXLASH2ICE01_T20C19A3000000/
Programme
http://www.traders.co.jp/foreign_stocks/market_s.asp#today
Plan d'indice économique
http://www.gaitame.com/market/yosoku.html
Matériaux / notes de force
http://market.fisco.co.jp/update/index.jsp
Remarques importantes
http://www.traderswebfx.jp/news/default.aspx?ID=7#newslist
Calendrier de règlement
http://kabuyoho.ifis.co.jp/
Calendrier d'introduction en bourse
http://www.tokyoipo.com/top/iposche/index.php?j_e=J
Vacances de marché
http://klug-fx.jp/holiday/
Vacances de marché
https://jp.investing.com/holiday-calendar/
Horloge mondiale
http://world.honda.com/worldclock/
Yahoo!Actualités "Nikkei Average"
https://news.yahoo.co.jp/search?p=%E6%97%A5%E7%B5%8C%E5%B9%B3%E5%9D%87&ei=utf-8&fr=news_sw
Google Actualités "Moyenne Nikkei"
https://www.google.co.jp/search?hl=ja&gl=jp&tbm=nws&authuser=0&q=%E6%97%A5%E7%B5%8C%E5%B9%B3%E5%9D%87&oq=%E6%97%A5%E7%B5%8C%E5%B9%B3%E5%9D%87&gs_l=news-cc.1.0.43j43i53.2284.2284.0.5545.1.1.0.0.0.0.56.56.1.1.0...0.0...1ac.1.oMorwBF68ss#q=%E6%97%A5%E7%B5%8C%E5%B9%B3%E5%9D%87&hl=ja&gl=jp&authuser=0&tbm=nws&tbs=sbd:1
FISCO
http://chart.fisco.co.jp/fisco/cgi-bin/index.cgi

http://chart.fisco.co.jp/fisco/cgi-bin/index.cgi

https://www.dukascopy.jp/

Vous avez extrait l'URL et la partie titre comme ceci.

Il peut y avoir une partie lien de *** http *** mais pas de titre de lien.

Recommended Posts

Premiers pas avec le Web Scraping
raclage Web
10 questions à vérifier avant le web scraping
Introduction à Scrapy (1)
Introduction à Scrapy (3)
Premiers pas avec Supervisor
Introduction à Tkinter 1: Introduction
grattage Web (prototype)
Introduction à PyQt
[Python] Introduction au scraping | Programme d'ouverture de pages Web (sélénium webdriver)
Introduction à Scrapy (2)
[Linux] Introduction à Linux
Introduction à Scrapy (4)
Introduction à discord.py (2)
[Introduction à WordCloud] Jouez avec le scraping ♬
J'ai essayé Web Scraping pour analyser les paroles.
Grattage 2 Comment gratter
Introduction à Lightning Pytorch
Introduction aux baies non paramétriques
Introduction à EV3 / MicroPython
Introduction au langage Python
Introduction à la reconnaissance d'image TensorFlow
Introduction à OpenCV (python) - (2)
[Python] Flux du scraping Web à l'analyse des données
[Introduction à Python3 Jour 20] Chapitre 9 Démêler le Web (9.1-9.4)
Introduction à PyQt4 Partie 1
Introduction à l'injection de dépendances
Introduction à Private Chainer
Introduction à l'apprentissage automatique
AOJ Introduction à la programmation Sujet 1, Sujet 2, Sujet 3, Sujet 4
Introduction au module de papier électronique
Introduction à l'algorithme de recherche de dictionnaire
Introduction à la méthode Monte Carlo
Web scraping avec python + JupyterLab
Introduction à Python Django (2) Win
Introduction à l'écriture de Cython [Notes]
Introduction à Private TensorFlow
Une super introduction à Linux
AOJ Introduction à la programmation Sujet n ° 7, Sujet n ° 8
Scraping Aller à Hébergement de voyage
Introduction à la détection des anomalies 1 principes de base
Introduction à RDB avec sqlalchemy Ⅰ
Technologie de grattage WEB et préoccupations
[Introduction au système] Retracement de Fibonacci ♬
Introduction à l'optimisation non linéaire (I)
Introduction à la communication série [Python]
Compromis dans le scraping et l'exploration Web
Grattage Web facile avec Scrapy
AOJ Introduction à la programmation Sujet n ° 5, Sujet n ° 6
[Python] Introduction au scraping WEB | Résumé des méthodes pouvant être utilisées avec webdriver
Collection d'images avec scraping Web
Web scraping avec Selenium (Python)
Introduction au Deep Learning ~ Règles d'apprentissage ~
[Introduction à Python] <liste> [modifier le 22/02/2020]
Introduction à Python (version Python APG4b)
Web scraping à l'aide d'AWS lambda