今回は、
Webサイトから俳句データを「スクレイピング」して、
csv形式で保存する。
スクレイピングとは、
Web ページの情報を取得する技術のことで、
Pythonでは、
2.Seleniumを利用する
この2つが代表的な方法だという。
初心者は、
Requests/BeautifulSoup がいいというが、
キカガク長期コースで、
Seleniumを教わったので、
こちらのライブラリを利用する。
ただ、
「スクレイピング」は基本かつ有用な機能なので、
ぜひともマスターしたい(以前、こんなブログも書いた[2019年8月1日])。
先月(3月25日)には、
『Python2年生 スクレイピングのしくみ』
を購入。
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2020/04/2E547624-44B0-446C-86D9-845CCF4C8332.jpeg?resize=385%2C500&ssl=1)
1章だけやってみたがむちゃくちゃていねいで、いい!
Requests/BeautifulSoupなど、超初心者向けに説明されていて、
Webアプリ制作が終わったら、一から勉強したい。
さて、本題。
前回作った仮想環境(myvenv5)からジュピター・ノートブックを立ち上げ、
でSeleniumをインストールし、
でSeleniumをインポート(*1)、
さらに、
で、W3Cで標準化されたAPIをインストールし、
これでさまざまなブラウザを(といっても、Chromeだけど)自動操作する(*2)。
そもそもSeleniumというのは、
ブラウザを自動操作するためのライブラリなのだ。
しくみは
『増補改訂版 Pythonクローリング&スクレイピング』によると
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2020/04/D9DDCF04-5D84-451C-8F5B-6CCABEBA1792.jpeg?resize=402%2C500&ssl=1)
キカガクでもおすすめと言われた。実際、この本は必須!
この通り。
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2020/04/1DD1E7ED-8290-4C18-9326-4ADA41D605C1.jpeg?resize=500%2C252&ssl=1)
©️上記、本書より
キカガクのテキストでは、
Chrome を自動操作するため、
いったんターミナルに戻り、
control + c (2つのキーを同時に押す)
で、ジュピター・ノートブックを中断させ(*3)、
で、Chrome用のドライバーである
「ChromeDriver」
をインストールする。
(最初はここで必ずつまづく *4)
で、ジュピター・ノートブックに戻り
(もちろん、ターミナルで jupyter notebook を実行するだけ)、
ブラウザ(Chrome)を立ち上げる。
Chromeのブラウザが自動的に立ち上がるが、
ジュピター・ノートブックに戻り、
お目当のWebサイトにアクセスする。
browser.get(url)
ここではURL(uniform resource locator)が長いので、
urlという変数に入れてコードを書いている。
先ほど自動的に立ち上がったChromeのブラウザに、
当該Webサイトが表示されるので、
ここで、
HTML(Hyper Text Markup Language:ハイパーテキスト・マークアップ・ランゲージ)を読み込んで、
CSS(Cascading Style Sheets、カスケーディング・スタイル・シート)も利用して、
どこを取得するか決める。
まだまだ先は長い(つづく)。
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2020/04/EDA9B73A-1973-42C8-9076-CF35DA09FF72.jpeg?resize=454%2C500&ssl=1)
これは、よく使う。ここからインストール!
それでも「No available formula with the name chromedriver」
というエラーが出たので、
brew cask install chromedriver
を実行し、ようやく動いた。