Text Mining mit Python-Scraping-

Ich beschäftige mich mit maschinellem Lernen von Arbeitsmustern und so weiter, und irgendwie war ich an Text Mining interessiert, also werde ich es als Memorandum dessen veröffentlichen, was ich versucht habe. Diesmal ist es eine Scraping-Ausgabe, aber am Ende denke ich darüber nach, die Scraping-Textinformationen zu analysieren, damit ich sie nach Bedarf veröffentlichen kann, wenn sie organisiert sind.

Ausführungsumgebung

Das erste, was mir beim Versuch, mit Python zu kratzen, in den Sinn kam, waren Anfragen und [BeautifulSoup](http: //). Es war kondou.com/BS4/), also werde ich diese Kombination dieses Mal verwenden.

Übrigens verwende ich normalerweise JSer, daher verwende ich häufig Puppenspieler zum Scraping. Nun, das ist in Ordnung, fangen wir tatsächlich an zu kratzen.

Überprüfen Sie zuerst, ob es funktioniert

Wenn Sie Code in Python schreiben, können Sie ihn natürlich direkt in die Datei "~ .py" schreiben. Wenn Sie jedoch Jupyter Notebook verwenden, gibt es verschiedene praktische Teile, z. B. das Ausgabeergebnis leicht zu sehen. Verwenden Sie daher Jupyter Notebook zum Testen. Es wird empfohlen, dies zu tun. Insbesondere dieses Mal werde ich mit Google Colaboratory testen, das von Google bereitgestellt wird. Es ist nicht erforderlich, eine Bibliothek zu installieren, sondern nur ein Google-Konto, um sie auszuführen.

** Öffnen Sie das Labor und erstellen Sie ein neues Notizbuch ** Öffnen Sie Colaboratory in Ihrem Webbrowser und öffnen Sie es Erstellen Sie ein neues Notizbuch über Datei> Neues Python 3-Notizbuch.

スクリーンショット (49).png

Ich glaube nicht, dass ich es mehr erklären muss, aber ich werde den Code in die Zelle im zentralen Bereich schreiben. 2.png

** Bibliothek importieren **

import


import  requests
from bs4 import BeautifulSoup

** URL angeben ** Dieses Mal werde ich die neuesten 10 Zeilen mit Schlagzeilen von ArchiFuture Web, einer Portal-Site für Architektur x Computing, die mein Beruf ist, kratzen. (ArchiFuture)

URL angeben


url = "http://www.archifuture-web.jp/headline/457.html"

** Seite mit Anfragen besuchen ** Mal sehen, ob wir tatsächlich auf die Seite zugreifen können.

Seite besuchen


res = requests.get(url)
res

Wenn Sie dies tun, wahrscheinlich

Antwort


<Response [200]>

Ich denke, das wird zurückgegeben. Wenn Sie den HTTP-Antwortcode wissen möchten, lesen Sie bitte hier.

Wenn Sie den Inhalt der Seite sehen möchten

res.text

Antwort


'<!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" verzeichnete die höchste Besucherzahl in der Geschichte und wurde erfolgreich durchgeführt | Headline | Architecture x Computation Portal Site\u3000Archi Future Web</title>\n<meta name="Description" content="Es ist eine Portal-Site "Archi Future Web" von Architektur x Computer." />\n<meta name="keywords" content="Die Architektur,Berechnung,Archi Future">\n<meta property="og:site_name" content="Die Architektur × Berechnungのポータルサイト\u3000Archi Future Web">\n<meta property="og:title" content=""Archi Future 2019" ist ein großer Erfolg mit der höchsten Besucherzahl aller Zeiten">\n<meta property="og:type" content="article">\n<meta property="og:description" content="Die 12. "Archi Future 2019" findet letzte Woche am 25. Oktober statt.(Geld)Wurde gehalten in. Am Veranstaltungstag war die Besucherzahl trotz des unglücklichen Wetters von starkem Regen und Wind hoch....">\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="Überschrift"/></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<!--========\u3000 Text\u3000========-->\n\n<div class="page-title">\n<p><img src="img/icon_new.gif" width="112" height="20" alt="Neueste 10 Zeilen Nachrichten"/></p>\n<h2>"Archi Future 2019" hat die höchste Besucherzahl aller Zeiten<br />\r\n Erfolgreich sammeln und halten</h2>\n</div>\n<p class="page-data">2019.10.28</p>\n\n<p>Die 12. "Archi Future 2019" findet letzte Woche am 25. Oktober statt.(Geld)Wurde gehalten in.<br />\r\n Am Veranstaltungstag trotz des unglücklichen Wetters von starkem Regen und Wind<span style="font-size:12px;">、</span>Die Besucherzahl beträgt 5 gegenüber der Vorzeit.4% mehr<br />\r\n5,Die Veranstaltung war mit 509 Besuchern ein großer Erfolg, die höchste Besucherzahl in der Geschichte.<br />\r\n Diller Scofidio, eine bekannte US-Designfirma+Grundsatzrede von Renfro und der aktuelle Standort der wichtigsten allgemeinen Computer<br />\r\Panel Design von 5 Personen in n langen Klassen<span style="font-size:12px;">ich</span>Suka<span style="font-size:12px;">Tsu</span>Shi<span style="font-size:12px;">Yo</span>Ist<span style="font-size:12px;">、</span>Der auf 600 Plätze erweiterte Veranstaltungsort ist voll<span style="font-size:12px;">、</span>Panel Design<span style="font-size:12px;">ich</span><br />\r\nSukaTsuShiYoIst席をさらに100席増設するほどの盛況ぶりだ<span style="font-size:12px;">Tsu</span>Es war. Welcher Kurs ist die Vorlesung / das Seminar?<br />\r\n ist fast voll<span style="font-size:12px;">、</span>Die Ausstellungshalle wird auch von einer großen Anzahl von Besuchern besucht<span style="font-size:12px;">、</span>Der gesamte Veranstaltungsort war sehr lebhaft und ein großer Erfolg<br />\r\nな開催となTsuた。岡田氏と山梨氏の特別対談1、豊田氏と松島氏の特別対談2をはじめ、どの<br />\r\nセTsuShi<span style="font-size:12px;">Yo</span>ンもDie Architekturの新しい方向性と明るい未来を感じさせてくれる、充実した内容であTsuた。<br />\r\Der Bericht von nArchi Future 2019 wird in Zukunft auf dieser Website vorgestellt.<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」オフichShiャルサイトのトTsuプページ" width="600" height="400"  /></p><p class="caption">\u3000「Archi Future 2019」オフichShiャルサイトのト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>&gt;</span> トTsuプページに戻る</a></li>\n<li class="go-list"><a href="index.html"><span>&gt;</span>Zurück zur Artikelliste</a></li>\n</ul>\n</div>\n\n<!--========\u3000 neuester Artikel\u3000========-->\n<div id="page-new" class="clr">\n<h2>Neueste Artikel</h2>\n<ul class="list01">\n<li><a href="457.html" target="">"Archi Future 2019" ist ein großer Erfolg mit der höchsten Besucherzahl aller Zeiten<br />\n2019.10.28\u3000<img src="img/icon_new.gif" width="112" height="20" alt="Neueste 10 Zeilen Nachrichten"/></a></li>\n<li><a href="456.html" target="">Archi Future 2019 wird endlich am 25. morgen im größten Maßstab aller Zeiten stattfinden<br />\n2019.10.24\u3000<img src="img/icon_new.gif" width="112" height="20" alt="Neueste 10 Zeilen Nachrichten"/></a></li>\n<li><a href="455.html" target="">25. Oktober dieser Woche(Geld)"Archi Future 2019" wird in stattfinden<br />\n2019.10.21\u3000<img src="img/icon_new.gif" width="112" height="20" alt="Neueste 10 Zeilen Nachrichten"/></a></li>\n</ul>\n</div>\n\n<!--========\u3000 Premium Banner\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<!--========\u3000 Rechteck Super Banner\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<!--========\u3000 Werbebanner\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="Software-Cradle"/></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="Die Architekturピボ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="グラフichソフトジャパン様"/></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&Frau"/></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="エヌビデichア様"/></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 & 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="Fukui Computer Architekt"/></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>'

In diesem Fall wird jedoch HTML zurückgegeben, das als Textdaten dicht gepackt ist, und ich verstehe nicht, was es ist. Verwenden wir also Beautiful Soup, um den HTML-Code zu analysieren.

** Verwenden Sie schöne Suppe **

HTML-Perspektive


soup = BeautifulSoup(res.text, 'html.parser')
soup

Sehen wir uns das Ergebnis hier an

Antwort


<!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#">

---(Kürzung)---

<!--========Text========-->
<div class="page-title">
<p><img alt="Neueste 10 Zeilen Nachrichten" height="20" src="img/icon_new.gif" width="112"/></p>
<h2>"Archi Future 2019" hat die höchste Besucherzahl aller Zeiten<br/>
Gesammelt und erfolgreich gehalten</h2>
</div>
<p class="page-data">2019.10.28</p>
<p>Die 12. "Archi Future 2019" findet letzte Woche am 25. Oktober statt.(Geld)Wurde gehalten in.<br/>
Am Tag der Veranstaltung trotz des unglücklichen Wetters von starkem Regen und Wind<span style="font-size:12px;">、</span>Die Besucherzahl beträgt 5 gegenüber der Vorzeit.4% mehr<br/>
5,Die Veranstaltung war mit 509 Besuchern ein großer Erfolg, die höchste Besucherzahl in der Geschichte.<br/>
Diller Scofidio, eine bekannte Designfirma in den USA+Grundsatzrede von Renfro und der aktuelle Standort der wichtigsten allgemeinen Computer<br/>
Panel Design von 5 langen Klassenmitgliedern<span style="font-size:12px;">ich</span>Suka<span style="font-size:12px;">Tsu</span>Shi<span style="font-size:12px;">Yo</span>Ist<span style="font-size:12px;">、</span>Der auf 600 Plätze erweiterte Veranstaltungsort ist voll<span style="font-size:12px;">、</span>Panel Design<span style="font-size:12px;">ich</span><br/>
Sukashon ist so erfolgreich, dass weitere 100 Sitze hinzukommen werden.<span style="font-size:12px;">Tsu</span>Es war. Welcher Kurs ist die Vorlesung / das Seminar?<br/>
Ist fast voll<span style="font-size:12px;">、</span>Die Ausstellungshalle wird auch von einer großen Anzahl von Besuchern besucht<span style="font-size:12px;">、</span>Der gesamte Veranstaltungsort war sehr lebhaft und ein großer Erfolg<br/>
Es wurde gehalten. Sondergespräch 1 zwischen Herrn Okada und Herrn Yamanashi, Sondergespräch 2 zwischen Herrn Toyoda und Herrn Matsushima, das<br/>
Sessie<span style="font-size:12px;">Yo</span>Es war ein erfüllender Inhalt, der mir eine neue Richtung der Architektur und eine glänzende Zukunft bescherte.<br/>
Der Bericht von Archi Future 2019 wird in Zukunft auf dieser Website vorgestellt.<br/>
<br/>
<a href="http://www.archifuture.jp/2019/" target="_blank"><p class="image al_center"><img alt="Top-Seite der offiziellen Website von "Archi Future 2019"" height="400" src="./img/4/c/4c57dc333a5c9d674ef327289a500800.jpg " width="600"/></p><p class="caption">Top-Seite der offiziellen Website von "Archi Future 2019"</p></a></p>

---(Kürzung)---

</html>

Es analysiert und zeigt HTML auf eine schöne Art und Weise.

Holen Sie sich die Informationen, die Sie erhalten möchten

Dann ist es endlich das Hauptthema. Dieses Mal möchten wir den Inhalt des 10-zeiligen Artikels abrufen. Finden Sie also zuerst heraus, wo sich der Artikelkörper befindet. Sie können es finden, indem Sie es mit dem Geschriebenen vergleichen. Wenn es sich jedoch um ein Web-System handelt, verwenden Sie die Entwicklertools, um es zu finden.

3.png

Etwas wie das. (Hmm ... ID und Klasse sind nicht zugewiesen ...)

Wenn die ID oder Klasse zugewiesen ist, können Sie sie leicht erhalten, indem Sie sie mit dem CSS-Selektor angeben. Diesmal gibt es jedoch keine solche, sodass ich alle p-Tags erhalte, in denen der Artikel geschrieben ist. ..

Holen Sie sich p Tag


p_tags = soup.select('p')
p_tags

Erfassungsergebnis des p-Tags


[<p><img alt="Neueste 10 Zeilen Nachrichten" height="20" src="img/icon_new.gif" width="112"/></p>,
 <p class="page-data">2019.10.28</p>,
 <p>Die 12. "Archi Future 2019" findet letzte Woche am 25. Oktober statt.(Geld)Wurde gehalten in.<br/>
Am Tag der Veranstaltung trotz des unglücklichen Wetters von starkem Regen und Wind<span style="font-size:12px;">、</span>Die Besucherzahl beträgt 5 gegenüber der Vorzeit.4% mehr<br/>
 5,Die Veranstaltung war mit 509 Besuchern ein großer Erfolg, die höchste Besucherzahl in der Geschichte.<br/>
Diller Scofidio, eine bekannte Designfirma in den USA+Grundsatzrede von Renfro und der aktuelle Standort der wichtigsten allgemeinen Computer<br/>
Panel Design von 5 langen Klassenmitgliedern<span style="font-size:12px;">ich</span>Suka<span style="font-size:12px;">Tsu</span>Shi<span style="font-size:12px;">Yo</span>Ist<span style="font-size:12px;">、</span>Der auf 600 Plätze erweiterte Veranstaltungsort ist voll<span style="font-size:12px;">、</span>Panel Design<span style="font-size:12px;">ich</span><br/>
Sukashon ist so erfolgreich, dass weitere 100 Sitze hinzukommen werden.<span style="font-size:12px;">Tsu</span>Es war. Welcher Kurs ist die Vorlesung / das Seminar?<br/>
Ist fast voll<span style="font-size:12px;">、</span>Die Ausstellungshalle wird auch von einer großen Anzahl von Besuchern besucht<span style="font-size:12px;">、</span>Der gesamte Veranstaltungsort war sehr lebhaft und ein großer Erfolg<br/>
Es wurde gehalten. Sondergespräch 1 zwischen Herrn Okada und Herrn Yamanashi, Sondergespräch 2 zwischen Herrn Toyoda und Herrn Matsushima, das<br/>
Sessie<span style="font-size:12px;">Yo</span>Es war ein erfüllender Inhalt, der mir eine neue Richtung der Architektur und eine glänzende Zukunft bescherte.<br/>
Der Bericht von Archi Future 2019 wird in Zukunft auf dieser Website vorgestellt.<br/>
 <br/>
 <a href="http://www.archifuture.jp/2019/" target="_blank"><p class="image al_center"><img alt="Top-Seite der offiziellen Website von "Archi Future 2019"" height="400" src="./img/4/c/4c57dc333a5c9d674ef327289a500800.jpg " width="600"/></p><p class="caption">Top-Seite der offiziellen Website von "Archi Future 2019"</p></a></p>,
 <p class="image al_center"><img alt="Top-Seite der offiziellen Website von "Archi Future 2019"" height="400" src="./img/4/c/4c57dc333a5c9d674ef327289a500800.jpg " width="600"/></p>,
 <p class="caption">Top-Seite der offiziellen Website von "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>]

Anscheinend ist es die zweite (von 0 aus) im p-Tag, also werde ich den Text des zweiten Elements daraus extrahieren.

Artikel erhalten


article = p_tags[2].get_text()
atricle

Ergebnis des Artikelerwerbs


'Die 12. "Archi Future 2019" findet letzte Woche am 25. Oktober statt.(Geld)Wurde gehalten in.\r\n Am Veranstaltungstag betrug die Besucherzahl trotz des unglücklichen Wetters mit starkem Regen und Wind 5 im Vergleich zum Vorjahr..4% mehr\r\n5,Die Veranstaltung war mit 509 Besuchern ein großer Erfolg, die höchste Besucherzahl in der Geschichte.\r\n Diller Scofidio, eine bekannte US-Designfirma+Grundsatzrede von Renfro und der aktuelle Standort der wichtigsten allgemeinen Computer\r\In der Podiumsdiskussion von 5 Personen in der n-langen Klasse wurde der Veranstaltungsort auf 600 Plätze erweitert und der Podiumstag war voll\r\n Scushion war so erfolgreich, dass 100 weitere Sitze hinzugefügt wurden. Welcher Kurs ist die Vorlesung / das Seminar?\r\n war fast voll, die Ausstellungshalle wurde von einer großen Anzahl von Besuchern besucht, und der gesamte Veranstaltungsort war sehr lebhaft, ein großer Erfolg.\r\Es wurde n gehalten. Sondergespräch 1 zwischen Herrn Okada und Herrn Yamanashi, Sondergespräch 2 zwischen Herrn Toyoda und Herrn Matsushima, das\r\Die n-Sitzung war auch ein erfüllender Inhalt, der uns das Gefühl gab, eine neue Richtung der Architektur und eine glänzende Zukunft einzuschlagen.\r\Der Bericht von nArchi Future 2019 wird in Zukunft auf dieser Website vorgestellt.\n\n\u3000 "Archi Future 2019" offizielle Seite Top-Seite'

Du kommst näher. Löschen wir also unnötige Zeilenvorschubcodes.

Nur Artikeltext extrahieren


lines = [line.strip() for line in text.splitlines()]  #Holen Sie sich nur Zeichen ohne Tags
ten_lines_news = lines[0:10]  #Löschen Sie nicht benötigte Teile
ten_lines_news

Inhalt von 10-zeiligen Nachrichten


['Die 12. "Archi Future 2019" findet letzte Woche am 25. Oktober statt.(Geld)Wurde gehalten in.',
 'Am Tag der Veranstaltung betrug die Besucherzahl trotz des unglücklichen Wetters mit starkem Regen und Wind 5 im Vergleich zur vorherigen Zeit..4% mehr',
 '5,Die Veranstaltung war mit 509 Besuchern ein großer Erfolg, die höchste Besucherzahl in der Geschichte.',
 'Diller Scofidio, eine bekannte Designfirma in den USA+Grundsatzrede von Renfro und der aktuelle Standort der wichtigsten allgemeinen Computer',
 'In der Podiumsdiskussion von 5 Personen in der langen Klasse wurde der Veranstaltungsort auf 600 Plätze erweitert und der Podiumstag war voll',
 'Scassion war so erfolgreich, dass weitere 100 Sitze hinzukamen. Welcher Kurs ist die Vorlesung / das Seminar?',
 'Die Ausstellungshalle war fast voll und die Ausstellungshalle war sehr lebhaft mit einer großen Anzahl von Besuchern.',
 'Es wurde gehalten. Sondergespräch 1 zwischen Herrn Okada und Herrn Yamanashi, Sondergespräch 2 zwischen Herrn Toyoda und Herrn Matsushima, das',
 'Die Sitzung war auch erfüllend und gab uns das Gefühl, eine neue Richtung der Architektur und eine glänzende Zukunft einzuschlagen.',
 'Der Bericht von Archi Future 2019 wird in Zukunft auf dieser Website vorgestellt.']

Du hast es gut verstanden. Der Aufregungspunkt ist, dass die Anzahl der Arrangements 10 beträgt.

Fügen Sie es schließlich in einer Textzeile zusammen.

In einem Text


ten_lines_news_text = ""
for line in ten_lines_news:
  ten_lines_news_text += line
ten_lines_news_text

Sammeln Sie auch Informationen rund um den Artikel

Der wahre Nervenkitzel beim Schaben besteht darin, viele Informationen gleichzeitig zu erhalten. In diesem Fall ist es derzeit nicht möglich, die erfassten Informationen zu identifizieren.

Dieses Mal erhalte ich in zwei Schritten das Datum, an dem der Artikel veröffentlicht wurde, und die Nummer, die der URL des Artikels zugewiesen wurde, und verwende sie als Artikel-ID. Wie Sie den Daten entnehmen können, die beim gleichzeitigen Erwerb des p-Tags ausgegeben wurden, wird dem Datumsteil eine Klasse zugewiesen. Verwenden wir dies, um das Datum dieses Mal zu erhalten.

Post-Datum abrufen


date = soup.select('.page-data')[0].string
date

Akquisitionsergebnis


'2019.10.28'

Der Rest ist die ID des Artikels, aber die URL der Artikelseite "http://www.archifuture-web.jp/headline/457.html" Stellen Sie sicher, dass Sie den Namensteil der HTML-Datei verwenden. (Diesmal ist es mühsam ~~ Schreiben wir die ID direkt)

Artikel-ID


id = 457

Funktionalisierung der Verarbeitung

Lassen Sie uns den bisher erstellten Prozess in eine Funktion verwandeln.

Die vier Prozesse von werden zu einer Funktion zusammengefasst, und wenn die URL eingegeben wird, wird der Text des 10-zeiligen Artikels zurückgegeben.

Funktionalisierung der Verarbeitung



def get_article(url):
  res = requests(url)
  soup = BeautifulSoup(res.text, ‘html.parser’)

  #Artikel erhalten
  p_tags = soup.select(‘p’)
  article = p_tags[2].get_text()
  lines = [line.strip() for line in text.splitlines()]  #Holen Sie sich nur Zeichen ohne Tags
  ten_lines_news = lines[0:10]  #Löschen Sie nicht benötigte Teile
  
  #Speichern Sie in einem Text Daten
  ten_lines_news_text = ""
  for line in ten_lines_news:
    ten_lines_news_text += line

  date = soup.select('.page-data')[0].string  #Datum und Uhrzeit veröffentlichen
  id = 457 #Artikel-ID

  return ten_lines_news_text

Überprüfen Sie, ob dies in der Python-Skriptdatei (.py) ausgeführt werden kann, und beschreiben Sie die folgenden Schritte in der Python-Skriptdatei, wenn dies ausgeführt werden kann.

Versuchen Sie, in einer CSV-Datei zu speichern

Es ist eine Verschwendung, die erfassten Informationen immer wieder zu erhalten. Schreiben wir sie also in die CSV-Datei. Es gibt mehrere Bibliotheken, die CSV-Daten in Python verarbeiten, aber dieses Mal werde ich Pandas verwenden. Es ist eine Bibliothek, die ich persönlich mag, weil sie sehr nützlich ist, wenn ich mit Zeilen- und Spaltendaten arbeite.

Bereiten wir die CSV-Datei vor, in die zuerst geschrieben werden soll (diesmal erstellen Sie sie mit dem Namen txt_data.csv). ~~ articles.csv ist besser geeignet ... ~~

txt_data.csv


id,date,text

Lesen und Schreiben von Dateien mit Pandas.

Schreiben Sie an 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)

CSV-Daten nach dem Schreiben ist abgeschlossen


id,date,text
457,2019.10.28,Die 12. "Archi Future 2019" findet letzte Woche am 25. Oktober statt.(Geld)Wurde gehalten in. Am Tag der Veranstaltung betrug die Besucherzahl trotz des unglücklichen Wetters mit starkem Regen und Wind 5 im Vergleich zur vorherigen Zeit..4% mehr 5,Die Veranstaltung war mit 509 Besuchern ein großer Erfolg, die höchste Besucherzahl in der Geschichte. Diller Scofidio, eine bekannte Designfirma in den USA+Die Grundsatzrede von Renfro und die Podiumsdiskussion der aktuellen Klasse der Standortmanager mit fünf großen Generaldirektoren waren voll, und die Podiumsdiskussion war so erfolgreich, dass die Anzahl der Sitze um 100 erhöht wurde. Alle Vorträge und Seminare waren fast voll, und die Ausstellungshalle wurde von einer großen Anzahl von Besuchern besucht. Der gesamte Veranstaltungsort war sehr lebhaft und ein großer Erfolg. Alle Sitzungen, einschließlich des besonderen Dialogs 1 zwischen Herrn Okada und Herrn Yamanashi und des besonderen Dialogs 2 zwischen Herrn Toyoda und Herrn Matsushima, waren erfüllend und gaben uns das Gefühl, eine neue Richtung der Architektur und eine glänzende Zukunft einzuschlagen. Der Bericht von Archi Future 2019 wird in Zukunft auf dieser Website vorgestellt.

Jetzt können Sie die erfassten Informationen als CSV-Daten speichern. Das nächste Mal werde ich erklären, wie alle bisher veröffentlichten Artikel veröffentlicht und die Textdaten gespeichert werden.

Referenz

Qiita: Eine allgemeine Methode, um nur Zeichen durch Scraping von Python zu extrahieren

Recommended Posts

Text Mining mit Python-Scraping-
Text Mining mit Python ② Visualisierung mit Word Cloud
Text Mining (für Memo)
Pythonbrew mit erhabenem Text
Text Mining mit Python ① Morphologische Analyse (re: Linux-Version)
Text Emotionsanalyse mit ML-Ask
Spielen Sie mit A3RT (Textvorschlag)
GOTO in Python mit erhabenem Text 3
Textextraktion mit AWS Textract (Python3.6)
Aktivieren Sie Python raw_input mit Sublime Text 3
Einfache GUI App mit Tkinter Text
Versuchen Sie, Bitcoin mit Pythons Hashlib abzubauen
Sprechen Sie japanischen Text mit OpenJTalk + Python
End-to-End-Text-Sprachsynthese ab ESPnet2
Englische Spracherkennung mit Python [Rede zu Text]
Unüberwachte Textklassifizierung mit Doc2Vec und k-means
Erstellen Sie eine große Textdatei mit Shellscript
Dokumentklassifizierung mit toch Text von PyTorch
Versuchen Sie, Ihr Tagebuch mit Python zu durchsuchen
Textfilterung mit naiven Buchten von sklearn
Erstellen Sie eine Matrix mit PythonGUI (Textfeld)
Lesen von Zeichen in Bildern mit Python OCR