Python

約30年前(1980年代)、私が大型CADの開発を計画した時、パソコンといえばまだオモチャみたいなもので、ワープロ(一太郎)や表計算(multiplan)で事務文書を書く程度のものでしたので、これでは使い物にならず、開発環境としてはUNIX+Cを使う以外考えられませんでした。

ところが、1995年Windows95が出現してからは、マイクロソフトの影響が強力で、アプリケーション開発ではUNIXではなく、Windows PCで開発するのが主流になりました。

私も時流に乗り遅れまいと、.NETとくにVB.NETを勉強し、専らVB.NETのプログラムを沢山書いていました。Webの世界ではJavaやJavascriptやPhpが使われていましたが、私はお手伝いで使う程度でした。

Unixは元々米国ATTの研究者が研究用として作成したもので、徐々に評判を得たOS(基本ソフト)でしたが、ビジネスと結びつくと結構高額な商品で、簡単に使えなくなりました。ただしソースは公開していたので、1991年に当時フィンランドのヘルシンキ大学の学生であったリーナス・トーバルズがUnixを参考にUnix互換ソフトを開発、無償で公開しましたので、瞬く間に評判を得て、また沢山の人が開発に協力するようになって、Linuxとして大きく成長することになりました。

時代がWEBの時代になり、LinuxがWEBサーバーとして独占的に使われるようになると、マイクロソフトが強力に作り上げたPC中心のクローズした世界は仇となって、Linux上で動作するフリーソフトを中心にした技術が大変重要視されるようになってきました。

昔は傍流であったJavascriptやJavaやPhp、最近急激に人気がでてきたPython(パイソン)やRuby(ルビー)の技術者に多くの求人が集まっています。

私は、これまでPythonやRubyに関心がなかったし、勉強しようとも思っていなかったのですが、今評判の言語を全く知らないのもしゃくなので、少しPythonを勉強してみました。

Pythonを勉強してみて、まず思ったのは、「いい教科書がない。あるのかもしれないが、探せない。マイクロソフトではこんなことはあり得ないことだ」と、最初に面喰いました。

Pyhotnの入門書はありますが、これはプログラミングの初級者用で、プログラミング経験者にはあまりにもかったるいのです。また「いいかな」と思う本は、なぜか気取った書き方で、「言語仕様を普通に解説してよ」といいたくなります。ともかく数冊読んでみました。

「この言語は『極力余計なことをしない』を設計の中心においている」と感想を持ちました。この点では「Perlに似ているが、その方針はPerlより徹底している」と思いました。

例えば次のようなことです。

プログラムは通常上から下に実行していきますが、途中で頻繁に分岐やループします。

このとき「ブロック」が明確である必要があり、メインのブロック、分岐したAのブロックとBのブロック、分岐ブロックの処理が済んだときに帰ってくるメインブロックの位置が明確でなければいけません。

C言語の系列では{}でブロックを表現しますし、他の言語では、If 判断 then Aブロック else Bブロック endif のように、then、else、endifを使ってブロックを明確にします。

これは結構かったるいのですが、Pythonではインデント(行揃えをずらす)ですませます。

また、計算では数字や文字のグループ操作が沢山あり、これも面倒なのですが、この部分も効率よく処理します。

しかし、なぜこれほどまでPythonの人気があるのか、本当のところはよくわかりません。

一つ言えるのは、WEB関連で便利なモジュールやパッケージが沢山無料で出回っていること、多分、処理系も軽く比較的容易にWEBに組み込むことができるからだと思います。

さて、GoogleやYahooで探したい事項を検索すると、関連するサイトの一覧を表示しますが、どのようになっているのだろう、と思っていました。

「Pythonによる クローラー&スクレイピング入門」(加藤勝也 翔泳社、2017年)を読みました。

Wikipediaによると「クローラ(Crawler)とは、ウェブ上の文書や画像などを周期的に取得し、自動的にデータベース化するプログラム」で、スクレイピングとは情報を抽出することのようです。

この本にはたくさんのクローラーとスクレイピングの技法を紹介しています。

以前書きましたようにWEBページのソースには、通常ユーザに見えていない沢山のタグ(画面制御用のラベル)がついています。そしてこれらのプログラムはこれらのタグを辿って必要な情報を抽出・表示していきます。

「価格.com」や各種ランキングページは特定のページをクロールし、定期的に価格やランキングを取得しているのだと思います。

この技法を使って、YahooやGoogleを始め、沢山のWEBサイトがこのような処理をしているのでしょう。この分野の求人も結構沢山あるようです。

error: コピーできません !!