Je traite de l'apprentissage automatique des modèles de travail et ainsi de suite, et d'une manière ou d'une autre, j'étais intéressé par l'exploration de texte, je vais donc le publier comme un mémorandum de ce que j'ai essayé. Cette fois, c'est une édition de scraping, mais à la fin je pense analyser les informations de texte gratté, donc je les posterai au besoin quand elles seront organisées.
Quand j'ai pensé à gratter avec Python, la première chose qui m'est venue à l'esprit était requests et [BeautifulSoup](http: //). C'était kondou.com/BS4/), donc je vais utiliser cette combinaison cette fois.
D'ailleurs, j'utilise habituellement JSer, donc j'utilise souvent puppeteer pour le scraping. Eh bien, c'est bien, commençons à gratter.
Bien sûr, lorsque vous écrivez du code en python, vous pouvez l'écrire directement dans le fichier "~ .py", mais si vous utilisez Jupyter Notebook, il existe diverses parties pratiques telles que la visualisation facile du résultat de sortie, alors utilisez Jupyter Notebook pour les tests. Il est recommandé de le faire. Surtout cette fois, je vais tester en utilisant Google Colaboratory fourni par Google. Il n'est pas nécessaire d'installer une bibliothèque, juste un compte Google pour l'exécuter.
** Ouvrez Colaboratory et créez un nouveau bloc-notes ** Ouvrez Colaboratory dans votre navigateur Web et ouvrez Créez un nouveau bloc-notes à partir de Fichier> Nouveau bloc-notes Python 3.
Je ne pense plus avoir besoin de l'expliquer, mais j'écrirai le code dans la cellule de la zone centrale.
** Importer la bibliothèque **
import
import requests
from bs4 import BeautifulSoup
** Spécifiez l'URL ** Cette fois, je vais gratter les 10 dernières lignes de l'actualité d'ArchiFuture Web, un site portail pour l'architecture x l'informatique, qui est mon métier. (ArchiFuture)
Spécifiez l'URL
url = "http://www.archifuture-web.jp/headline/457.html"
** Visiter la page à l'aide de demandes ** Voyons si nous pouvons réellement accéder à la page.
Page de visite
res = requests.get(url)
res
Si vous faites cela, vous
réponse
<Response [200]>
Je pense que ce sera retourné. Si vous souhaitez connaître le code de réponse HTTP, veuillez vous référer à ici.
Si vous souhaitez voir le contenu de la page
res.text
réponse
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja" dir="ltr" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n<meta http-equiv="Content-Style-Type" content="text/css" />\n<meta http-equiv="Content-Script-Type" content="text/javascript" />\n<!-- [if lt IE]><meta http-equiv="imagetoolbar" content="no" /><![endif] -->\n<title>"Archi Future 2019" est un grand succès avec le plus grand nombre de visiteurs de l'histoire | Titre | Architecture x Site portail de calcul\u3000Archi Future Web</title>\n<meta name="Description" content="Il s'agit d'un site portail "Archi Future Web" d'architecture x ordinateur." />\n<meta name="keywords" content="Architecture,Calcul,Archi Future">\n<meta property="og:site_name" content="Architecture × Calculのポータルサイト\u3000Archi Future Web">\n<meta property="og:title" content=""Archi Future 2019" est un grand succès avec le plus grand nombre de visiteurs jamais enregistré">\n<meta property="og:type" content="article">\n<meta property="og:description" content="Le 12ème "Archi Future 2019" aura lieu le 25 octobre la semaine dernière.(Argent)A été retenu. Le jour de l'événement, le nombre de visiteurs était élevé malgré le mauvais temps de fortes pluies et de vent....">\n<meta property="og:url" content="http://www.archifuture-web.jp/headline/457.html" />\n<meta property="og:image" content="http://www.archifuture-web.jp/headline/img/4/c/4c57dc333a5c9d674ef327289a500800.jpg " />\n<meta property="og:image:width" content="700" />\n<meta property="og:image:height" content="467" />\n<meta property="og:locale" content="ja_JP">\n<link rel="stylesheet" type="text/css" href="../common/css/import.css" />\n<!-- [if lt IE 9]><link rel="stylesheet" type="text/css" href="../common/css/ie.css" /><![endif] -->\n<script type="text/javascript" src="../common/js/jquery.js"></script>\n<script type="text/javascript" src="../common/js/init.js"></script>\n<script type="text/javascript" src="../common/js/Nav.js"></script>\n</head>\n\n<body id="headline">\n<div id="container">\n<script type="text/javascript">header(\'../\');</script>\n<hr class="hide" />\n\n<h2><img src="img/title.jpg " width="960" height="60" alt="Gros titre"/></h2>\n\n<div id="content">\n<div class="section">\n<div id="mainContent">\n\n<!--========\u3000SNS\u3000========-->\n<div id="sns" class="clearfix">\n<div class="facebook"><div id="fb-root"></div>\n<script>(function(d, s, id) {\n var js, fjs = d.getElementsByTagName(s)[0];\n if (d.getElementById(id)) return;\n js = d.createElement(s); js.id = id;\n js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&appId=152808698121811&version=v2.0";\n fjs.parentNode.insertBefore(js, fjs);\n}(document, \'script\', \'facebook-jssdk\'));</script><div class="fb-share-button" data-href="http://www.archifuture-web.jp/headline/457.html" data-layout="button"></div></div>\n<div class="twitter"><a href="https://twitter.com/share" class="twitter-share-button" data-lang="ja" data-count="none">Tweet</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?\'http\':\'https\';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+\'://platform.twitter.com/widgets.js\';fjs.parentNode.insertBefore(js,fjs);}}(document, \'script\', \'twitter-wjs\');</script></div>\n<!-- /#sns --></div>\n\n<!--========\texte u3000\u3000========-->\n\n<div class="page-title">\n<p><img src="img/icon_new.gif" width="112" height="20" alt="Dernières actualités 10 lignes"/></p>\n<h2>"Archi Future 2019" a le plus grand nombre de visiteurs jamais enregistré<br />\r\n Collectez et maintenez avec succès</h2>\n</div>\n<p class="page-data">2019.10.28</p>\n\n<p>Le 12ème "Archi Future 2019" aura lieu le 25 octobre la semaine dernière.(Argent)A été retenu.<br />\r\n Le jour de l'événement, malgré le mauvais temps de fortes pluies et de vent<span style="font-size:12px;">、</span>Le nombre de visiteurs est de 5 par rapport à la fois précédente.Augmentation de 4%<br />\r\n5,L'événement a été un grand succès avec 509 visiteurs, le plus grand nombre de visiteurs de l'histoire.<br />\r\n Diller Scofidio, une société de design américaine bien connue+Discours d'ouverture de Renfro et emplacement actuel des principaux ordinateurs généraux<br />\r\Conception de panneaux par 5 personnes dans une classe longue<span style="font-size:12px;">je</span>Suka<span style="font-size:12px;">Tsu</span>Shi<span style="font-size:12px;">Yo</span>Est<span style="font-size:12px;">、</span>Le lieu agrandi à 600 places est complet<span style="font-size:12px;">、</span>Conception du panneau<span style="font-size:12px;">je</span><br />\r\nSukaTsuShiYoEst席をさらに100席増設するほどの盛況ぶりだ<span style="font-size:12px;">Tsu</span>C'était. Quel cours est le cours / séminaire?<br />\r\n est presque plein<span style="font-size:12px;">、</span>Le hall d'exposition est également visité par un grand nombre de visiteurs<span style="font-size:12px;">、</span>L'ensemble du lieu était très animé et un grand succès<br />\r\nな開催となTsuた。岡田氏と山梨氏の特別対談1、豊田氏と松島氏の特別対談2をはじめ、どの<br />\r\nセTsuShi<span style="font-size:12px;">Yo</span>ンもArchitectureの新しい方向性と明るい未来を感じさせてくれる、充実した内容であTsuた。<br />\r\Le rapport de nArchi Future 2019 sera présenté sur ce site à l'avenir.<br />\r\n<br />\r\n<a href="http://www.archifuture.jp/2019/" target="_blank"><p class="image al_center"><img src="./img/4/c/4c57dc333a5c9d674ef327289a500800.jpg " alt="\u3000「Archi Future 2019」オフjeShiャルサイトのトTsuプページ" width="600" height="400" /></p><p class="caption">\u3000「Archi Future 2019」オフjeShiャルサイトのトTsuプページ</p></a></p>\n\n<!--========\u3000ナビゲーShiYoン\u3000========-->\n<div id="page-navi" class="clearfix clr">\n<ul>\n<li class="go-top"><a href="../index.html"><span>></span> トTsuプページに戻る</a></li>\n<li class="go-list"><a href="index.html"><span>></span>Retour à la liste d'articles</a></li>\n</ul>\n</div>\n\n<!--========\Dernier article u3000\u3000========-->\n<div id="page-new" class="clr">\n<h2>Derniers articles</h2>\n<ul class="list01">\n<li><a href="457.html" target="">"Archi Future 2019" est un grand succès avec le plus grand nombre de visiteurs jamais enregistré<br />\n2019.10.28\u3000<img src="img/icon_new.gif" width="112" height="20" alt="Dernières actualités 10 lignes"/></a></li>\n<li><a href="456.html" target="">Archi Future 2019 se tiendra enfin le 25 demain à la plus grande échelle jamais organisée<br />\n2019.10.24\u3000<img src="img/icon_new.gif" width="112" height="20" alt="Dernières actualités 10 lignes"/></a></li>\n<li><a href="455.html" target="">25 octobre de cette semaine(Argent)`` Archi Future 2019 '' se tiendra à<br />\n2019.10.21\u3000<img src="img/icon_new.gif" width="112" height="20" alt="Dernières actualités 10 lignes"/></a></li>\n</ul>\n</div>\n\n<!--========\bannière premium u3000\u3000========-->\n\r\n<div id="premiumbanner" class="al_center clr">\r\n<a href="http://www.archifuture.jp/2019/" class="premiumbanner-left banner" target="_blank" id="premium-24"><img src="../img_banner/premium/img/8/2/8280d8bb17d4c09e872441a1ba21eae0.png " width="270" height="180" alt="Archi Future 2019"/></a>\r\n<a href="http://www.archifuture.jp/2019/" class="premiumbanner-right banner" target="_blank" id="premium-25"><img src="../img_banner/premium/img/6/a/6ad8af52988f0560acbb6c08377d79f3.png " width="270" height="180" alt="Archi Future 2019"/></a>\r\n</div>\r\n\n\n<!--========\Super bannière rectangle u3000\u3000========-->\n\r\n<p id="superbanner" class="al_center"><a href="http://www.archifuture.jp/2019/" class="banner" id="super-14"><img src="../img_banner/super/img/9/9/99ae81e84701bf687561a0ca026bdef0.png " width="600" height="90" alt="Archi Future 2019"/></a></p>\r\n\n\n<!-- /#mainContent --></div>\n\n<div id="sidebar">\n<!--========\bannière publicitaire u3000\u3000========-->\n\r\n<ul id="banner" class="clr">\r\n<li><a href="https://www.cradle.co.jp/" target="_blank" class="banner" id="default-5"><img src="../img_banner/default/img/2/f/2f1b60f601b0f99e6094e32d7fd0b26d.gif" width="270" height="80" alt="Support logiciel"/></a></li>\r\n<li><a href="https://product.metamoji.com/gemba/eyacho/" target="_blank" class="banner" id="default-24"><img src="../img_banner/default/img/2/8/280e8426c1fb78ee0e67b2d009d7c9d2.gif" width="270" height="80" alt="MetaMoJi"/></a></li>\r\n<li><a href="https://www.izumi-soft.jp/product-category/bim-%E7%A9%BA%E8%AA%BF%E8%A8%AD%E5%82%99%E8%A8%AD%E8%A8%88/" target="_blank" class="banner" id="default-16"><img src="../img_banner/default/img/1/8/18ef602ddf1e9f1e3c5f00a7674725a2.gif" width="270" height="80" alt="イズミShiステム設計様"/></a></li>\r\n<li><a href="http://www.nyk-systems.co.jp/" target="_blank" class="banner" id="default-6"><img src="../img_banner/default/img/3/b/3b747d65472ce7be37b8235fc703432d.gif" width="270" height="80" alt="NYKShiステムズ様"/></a></li>\r\n<li><a href="http://www.pivot.co.jp/" target="_blank" class="banner" id="default-12"><img src="../img_banner/default/img/6/d/6d10409aeb0b2d23bd73b9ccc70cc08d.gif" width="270" height="80" alt="ArchitectureピボTsuト様"/></a></li>\r\n<li><a href="http://www.applicraft.com/" target="_blank" class="banner" id="default-20"><img src="../img_banner/default/img/9/0/90cc824aac1eda2ba2c37046e55dd79c.gif" width="270" height="80" alt="Appcraft"/></a></li>\r\n<li><a href="http://bit.ly/2Bw8tEc" target="_blank" class="banner" id="default-3"><img src="../img_banner/default/img/7/d/7dbe65f17a1bf153277ba5b466580556.jpg " width="270" height="80" alt="グラフjeソフトジャパン様"/></a></li>\r\n<li><a href="https://autode.sk/2TXDSqE" target="_blank" class="banner" id="default-11"><img src="../img_banner/default/img/e/c/ecb06a6b95c9e79935b6a7df88384ab3.jpg " width="270" height="80" alt="Autodesk"/></a></li>\r\n<li><a href="https://licensecounter.jp/aec-collection-bim/" target="_blank" class="banner" id="default-22"><img src="../img_banner/default/img/1/0/10bcd30f085e6ce4dab4b824c64817a6.gif" width="270" height="80" alt="SB C&Mme"/></a></li>\r\n<li><a href="https://www.nvidia.com/ja-jp/design-visualization/industries/architecture-engineering-construction/?nvid=nv-int-pcjp12rrdsfrqr-44523" target="_blank" class="banner" id="default-21"><img src="../img_banner/default/img/d/5/d53b3fe7fec2bc10858a26f88556c8fb.jpg " width="270" height="80" alt="エヌビデjeア様"/></a></li>\r\n<li><a href=" https://www.aanda.co.jp/Vectorworks2019/index.html?utm_source=af&utm_medium=banner&utm_campaign=bnr_20190921" target="_blank" class="banner" id="default-9"><img src="../img_banner/default/img/7/2/72745a704c3abe2513357559102be116.jpg " width="270" height="80" alt="A et A"/></a></li>\r\n<li><a href="http://j-bim.gloobe.jp/" target="_blank" class="banner" id="default-4"><img src="../img_banner/default/img/a/9/a9f022f44cac2878ac5936fcf4b26175.gif" width="270" height="80" alt="Architecte informatique Fukui"/></a></li>\r\n<li><a href="http://www.env-simulation.com" target="_blank" class="banner" id="default-18"><img src="../img_banner/default/img/e/3/e3d7f1694a53705271dc5e751519d0d8.gif" width="270" height="80" alt="環境ShiミュレーShiYoン様"/></a></li>\r\n<li><a href="http://www.f-cadewa.com/" target="_blank" class="banner" id="default-8"><img src="../img_banner/default/img/f/0/f0a5e6fe83e322a2d62a2461855a6c2a.gif" width="270" height="80" alt="富士通四国インフォテTsuク様"/></a></li>\r\n<li><a href="https://www.photoruction.com/?utm_source=afw&utm_medium=banner&utm_campaign=201903" target="_blank" class="banner" id="default-23"><img src="../img_banner/default/img/2/8/28dba36bb5e98ff9a4514ae00e93844b.png " width="270" height="80" alt="フォトラクShiYoン様"/></a></li>\r\n</ul>\r\n<script type="text/javascript">\r\n<!--\r\nvar top_url = \'/\';\r\n//-->\r\n</script>\r\n<script type="text/javascript" src="../common/js/banner_track.js"></script>\r\n\n\n<!-- /#sidebar --></div>\n<!-- /#section --></div>\n<!-- /#content --></div>\n\n<script type="text/javascript">footer(\'../\');</script>\n\n<!-- /#container --></div>\n</body>\n</html>'
Cependant, dans ce cas, du HTML qui est compacté sous forme de données texte est renvoyé, et je ne comprends pas ce que c'est. Utilisons donc Beautiful Soup pour analyser le HTML.
** Utilisez une belle soupe **
perspective html
soup = BeautifulSoup(res.text, 'html.parser')
soup
Voyons le résultat ici
réponse
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" lang="ja" xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://ogp.me/ns#">
---(réduction)---
<!--========Texte========-->
<div class="page-title">
<p><img alt="Dernières actualités 10 lignes" height="20" src="img/icon_new.gif" width="112"/></p>
<h2>"Archi Future 2019" a le plus grand nombre de visiteurs jamais enregistré<br/>
Collecté et conservé avec succès</h2>
</div>
<p class="page-data">2019.10.28</p>
<p>Le 12ème "Archi Future 2019" aura lieu le 25 octobre la semaine dernière.(Argent)A été retenu.<br/>
Le jour de l'événement, malgré le mauvais temps de fortes pluies et de vent<span style="font-size:12px;">、</span>Le nombre de visiteurs est de 5 par rapport à la fois précédente.Augmentation de 4%<br/>
5,L'événement a été un grand succès avec 509 visiteurs, le plus grand nombre de visiteurs de l'histoire.<br/>
Diller Scofidio, une entreprise de design renommée aux États-Unis+Discours d'ouverture de Renfro et emplacement actuel des principaux ordinateurs généraux<br/>
Conception du panneau par 5 membres de longue date<span style="font-size:12px;">je</span>Suka<span style="font-size:12px;">Tsu</span>Shi<span style="font-size:12px;">Yo</span>Est<span style="font-size:12px;">、</span>Le lieu agrandi à 600 places est complet<span style="font-size:12px;">、</span>Conception du panneau<span style="font-size:12px;">je</span><br/>
Sukashon a un tel succès qu'il ajoutera 100 sièges supplémentaires.<span style="font-size:12px;">Tsu</span>C'était. Quel cours est le cours / séminaire?<br/>
Est presque plein<span style="font-size:12px;">、</span>Le hall d'exposition est également visité par un grand nombre de visiteurs<span style="font-size:12px;">、</span>L'ensemble du lieu était très animé et un grand succès<br/>
Il a eu lieu. Conférence spéciale 1 entre M. Okada et M. Yamanashi, conférence spéciale 2 entre M. Toyoda et M. Matsushima, qui<br/>
Sessie<span style="font-size:12px;">Yo</span>C'était un contenu épanouissant qui m'a fait sentir une nouvelle direction de l'architecture et un avenir radieux.<br/>
Le rapport d'Archi Future 2019 sera présenté sur ce site à l'avenir.<br/>
<br/>
<a href="http://www.archifuture.jp/2019/" target="_blank"><p class="image al_center"><img alt="Première page du site officiel "Archi Future 2019"" height="400" src="./img/4/c/4c57dc333a5c9d674ef327289a500800.jpg " width="600"/></p><p class="caption">Première page du site officiel "Archi Future 2019"</p></a></p>
---(réduction)---
</html>
Il analyse et affiche le HTML de manière agréable.
Puis c'est finalement le sujet principal. Cette fois, nous voulons obtenir le contenu de l'article de 10 lignes, alors voyons d'abord où se trouve le corps de l'article. Vous pouvez le trouver en le comparant à ce qui est écrit, mais s'il s'agit d'un système Web, utilisez les outils de développement pour le trouver.
Quelque chose comme ça. (Hmm ... id et classe ne sont pas attribués ...)
Si l'identifiant ou la classe est attribué, vous pouvez facilement l'obtenir en le spécifiant à l'aide du sélecteur css, mais cette fois, cela n'existe pas, donc j'obtiendrai toutes les balises p où l'article est écrit. ..
Obtenir la balise p
p_tags = soup.select('p')
p_tags
Résultat d'acquisition de la balise p
[<p><img alt="Dernières actualités 10 lignes" height="20" src="img/icon_new.gif" width="112"/></p>,
<p class="page-data">2019.10.28</p>,
<p>Le 12ème "Archi Future 2019" aura lieu le 25 octobre la semaine dernière.(Argent)A été retenu.<br/>
Le jour de l'événement, malgré le mauvais temps de fortes pluies et de vent<span style="font-size:12px;">、</span>Le nombre de visiteurs est de 5 par rapport à la fois précédente.Augmentation de 4%<br/>
5,L'événement a été un grand succès avec 509 visiteurs, le plus grand nombre de visiteurs de l'histoire.<br/>
Diller Scofidio, une entreprise de design renommée aux États-Unis+Discours d'ouverture de Renfro et emplacement actuel des principaux ordinateurs généraux<br/>
Conception du panneau par 5 membres de longue date<span style="font-size:12px;">je</span>Suka<span style="font-size:12px;">Tsu</span>Shi<span style="font-size:12px;">Yo</span>Est<span style="font-size:12px;">、</span>Le lieu agrandi à 600 places est complet<span style="font-size:12px;">、</span>Conception du panneau<span style="font-size:12px;">je</span><br/>
Sukashon a un tel succès qu'il ajoutera 100 sièges supplémentaires.<span style="font-size:12px;">Tsu</span>C'était. Quel cours est le cours / séminaire?<br/>
Est presque plein<span style="font-size:12px;">、</span>Le hall d'exposition est également visité par un grand nombre de visiteurs<span style="font-size:12px;">、</span>L'ensemble du lieu était très animé et un grand succès<br/>
Il a eu lieu. Conférence spéciale 1 entre M. Okada et M. Yamanashi, conférence spéciale 2 entre M. Toyoda et M. Matsushima, qui<br/>
Sessie<span style="font-size:12px;">Yo</span>C'était un contenu épanouissant qui m'a fait sentir une nouvelle direction de l'architecture et un avenir radieux.<br/>
Le rapport d'Archi Future 2019 sera présenté sur ce site à l'avenir.<br/>
<br/>
<a href="http://www.archifuture.jp/2019/" target="_blank"><p class="image al_center"><img alt="Première page du site officiel "Archi Future 2019"" height="400" src="./img/4/c/4c57dc333a5c9d674ef327289a500800.jpg " width="600"/></p><p class="caption">Première page du site officiel "Archi Future 2019"</p></a></p>,
<p class="image al_center"><img alt="Première page du site officiel "Archi Future 2019"" height="400" src="./img/4/c/4c57dc333a5c9d674ef327289a500800.jpg " width="600"/></p>,
<p class="caption">Première page du site officiel "Archi Future 2019"</p>,
<p class="al_center" id="superbanner"><a class="banner" href="http://www.archifuture.jp/2019/" id="super-14"><img alt="Archi Future 2019" height="90" src="../img_banner/super/img/9/9/99ae81e84701bf687561a0ca026bdef0.png " width="600"/></a></p>]
Apparemment, c'est le deuxième (à partir de 0) de la balise p, donc je vais en extraire le texte du deuxième élément.
Obtenir des articles
article = p_tags[2].get_text()
atricle
Résultat d'acquisition d'article
'Le 12ème "Archi Future 2019" aura lieu le 25 octobre la semaine dernière.(Argent)A été retenu.\r\n Le jour de l'événement, le nombre de visiteurs était de 5 par rapport à la fois précédente, malgré le mauvais temps de fortes pluies et de vent..Augmentation de 4%\r\n5,L'événement a été un grand succès avec 509 visiteurs, le plus grand nombre de visiteurs de l'histoire.\r\n Diller Scofidio, une société de design américaine bien connue+Discours d'ouverture de Renfro et emplacement actuel des principaux ordinateurs généraux\r\Lors de la table ronde de 5 personnes de la classe n-long, la salle a été agrandie à 600 places et la journée du panel\r\n Scushion a connu un tel succès qu'il a ajouté 100 sièges supplémentaires. Quel cours est le cours / séminaire?\r\n était presque pleine, la salle d'exposition a été visitée par un grand nombre de visiteurs, et l'ensemble du lieu a été très animé, un grand succès.\r\Il a eu lieu n. Conférence spéciale 1 entre M. Okada et M. Yamanashi, conférence spéciale 2 entre M. Toyoda et M. Matsushima, qui\r\La n-session était également un contenu épanouissant qui nous a fait sentir une nouvelle direction de l'architecture et un avenir radieux.\r\Le rapport de nArchi Future 2019 sera présenté sur ce site à l'avenir.\n\n\u3000 "Archi Future 2019" page d'accueil du site officiel'
Vous vous rapprochez. Alors, effaçons les codes de saut de ligne inutiles.
Extraire uniquement le texte de l'article
lines = [line.strip() for line in text.splitlines()] #Obtenez uniquement des caractères sans balises
ten_lines_news = lines[0:10] #Supprimer les pièces inutiles
ten_lines_news
Contenu des actualités en 10 lignes
['Le 12ème "Archi Future 2019" aura lieu le 25 octobre la semaine dernière.(Argent)A été retenu.',
'Le jour de l'événement, le nombre de visiteurs était de 5 par rapport à la fois précédente, malgré le mauvais temps de fortes pluies et de vent..Augmentation de 4%',
'5,L'événement a été un grand succès avec 509 visiteurs, le plus grand nombre de visiteurs de l'histoire.',
'Diller Scofidio, une entreprise de design renommée aux États-Unis+Discours d'ouverture de Renfro et emplacement actuel des principaux ordinateurs généraux',
'Lors de la table ronde de 5 personnes de la classe longue, la salle s'est agrandie à 600 places était pleine et la journée du panel',
'Scassion a eu un tel succès qu'il a ajouté 100 autres sièges. Quel cours est le cours / séminaire?',
'La salle d'exposition était presque pleine et la salle d'exposition était très animée avec un grand nombre de visiteurs.',
'Il a eu lieu. Conférence spéciale 1 entre M. Okada et M. Yamanashi, conférence spéciale 2 entre M. Toyoda et M. Matsushima, qui',
'La session était également enrichissante et nous a fait sentir une nouvelle direction de l'architecture et un avenir radieux.',
'Le rapport d'Archi Future 2019 sera présenté sur ce site à l'avenir.']
Vous l'avez bien. Le point d'excitation est que le nombre d'arrangements est de 10.
Enfin, rassemblez-les en une seule ligne de texte.
Dans un texte
ten_lines_news_text = ""
for line in ten_lines_news:
ten_lines_news_text += line
ten_lines_news_text
Le véritable plaisir du grattage est d'obtenir beaucoup d'informations à la fois. Lorsque cela se produit, il n'est actuellement pas possible d'identifier les informations qui ont été acquises.
Cette fois, en deux étapes, j'obtiendrai la date à laquelle l'article a été publié et le numéro attribué à l'URL de l'article et je l'utiliserai comme ID d'article. Comme vous pouvez le voir à partir des données qui sont sorties lorsque la balise p a été acquise en une seule fois, la partie date se voit attribuer une classe. Utilisons ceci pour obtenir la date cette fois.
Obtenir la date de publication
date = soup.select('.page-data')[0].string
date
Résultat d'acquisition
'2019.10.28'
Le reste est l'identifiant de l'article, mais l'URL de la page de l'article "http://www.archifuture-web.jp/headline/457.html" Assurez-vous d'utiliser la partie nom du fichier html. (Cette fois, c'est gênant ~~ Écrivons directement l'ID)
ID de l'article
id = 457
Transformons le processus créé jusqu'à présent en une fonction.
Les quatre processus de sont combinés en une seule fonction, et lorsque l'URL est saisie, le texte de l'article de 10 lignes est renvoyé.
Fonctionnalisation du traitement
def get_article(url):
res = requests(url)
soup = BeautifulSoup(res.text, ‘html.parser’)
#Obtenir des articles
p_tags = soup.select(‘p’)
article = p_tags[2].get_text()
lines = [line.strip() for line in text.splitlines()] #Obtenez uniquement des caractères sans balises
ten_lines_news = lines[0:10] #Supprimer les pièces inutiles
#Stocker dans un seul texte de données
ten_lines_news_text = ""
for line in ten_lines_news:
ten_lines_news_text += line
date = soup.select('.page-data')[0].string #Date et heure de publication
id = 457 #ID de l'article
return ten_lines_news_text
Vérifiez si cela peut être exécuté dans le fichier de script python (.py), et s'il peut être exécuté, décrivez les étapes suivantes dans le fichier de script python.
C'est un gaspillage de continuer à obtenir les informations acquises, alors écrivons-les dans le fichier csv. Il existe plusieurs bibliothèques qui gèrent les données csv en python, mais cette fois j'utiliserai des pandas. C'est une bibliothèque que j'aime personnellement car elle est très utile lorsque vous travaillez avec des données de ligne et de colonne.
Préparons d'abord le fichier csv dans lequel écrire (cette fois-ci, créez-le avec le nom txt_data.csv). ~~ articles.csv est plus approprié ... ~~
txt_data.csv
id,date,text
Lisez et écrivez des fichiers à l'aide de pandas.
Écrire dans csv
csv_file = 'csv/txt_data.csv'
df = pd.read_csv(csv_file)
text = value
results = pd.DataFrame([id, date, text], columns=['id', 'date', 'text'])
df = pd.concat([df, results])
df.to_csv(csv_file, index=False)
print("success writing to %s" % csv_file)
Données CSV une fois l'écriture terminée
id,date,text
457,2019.10.28,Le 12ème "Archi Future 2019" aura lieu le 25 octobre la semaine dernière.(Argent)A été retenu. Le jour de l'événement, le nombre de visiteurs était de 5 par rapport à la fois précédente, malgré le mauvais temps de fortes pluies et de vent..Augmentation de 4% 5,L'événement a été un grand succès avec 509 visiteurs, le plus grand nombre de visiteurs de l'histoire. Diller Scofidio, une entreprise de design renommée aux États-Unis+Le discours liminaire de Renfro et la table ronde de la classe actuelle des gestionnaires de sites, composée de cinq grands directeurs généraux, étaient pleins et la table ronde a été si réussie que le nombre de sièges a été augmenté de 100. Toutes les conférences et séminaires étaient presque pleins, et la salle d'exposition a été visitée par un grand nombre de visiteurs, et l'ensemble du lieu était très animé et a été un grand succès. Toutes les séances, y compris le dialogue spécial 1 entre M. Okada et M. Yamanashi et le dialogue spécial 2 entre M. Toyoda et M. Matsushima, ont été enrichissants et nous ont fait sentir une nouvelle direction de l'architecture et un avenir radieux. Le rapport d'Archi Future 2019 sera présenté sur ce site à l'avenir.
Vous pouvez maintenant enregistrer les informations acquises sous forme de données csv. La prochaine fois, j'expliquerai comment obtenir tous les articles publiés jusqu'à présent et enregistrer les données texte.
Qiita: Une manière générale d'extraire uniquement les caractères en grattant Python
Recommended Posts