鉄道模型工作実験室

Nゲージ鉄道模型に関する工作や実験を行っています。

Pythonを使用した機械学習の教本を開く

最近流行りのAIについて、以前から興味があったので、その手始めとして「機械学習」について触ってみることにした。
そのための教本として選定したのが、インプレス社の「いちばんやさしい Python 機械学習の教本 第2版」である。
現在のAIブームは第3次の深層学習の時代であり、機械学習は40年前から始まった第2次ブームで発展したとのこと。興味があったのは、データ収集方法としてのWEBスクレイピング手法なのである。
この手法は、いろいろなサイトから目的とする情報を収集する方法なので、鉄道模型のWEBサイトを開設している小生としては興味あるテーマなのである。
そして、使用するアプリが Python とくれば、一度は挑戦してみたくなるのであった。


でも、大きな壁にぶつかってしまったのである。

  ********************************


第1章、第2章はすいすいと軽く読み飛ばし、第3章の「スクレイピングでデータを収集しよう」でつなずいてしまったのである。
今回は、そのつなずき具合を記録していくことにする。


1)WEBページのアクセスを拒否される。
第3章の初めに記載されているコマンドを Python に打ち込んで実行すると、エラーが表示され、それ以降の手順が実行できないのである。初めからつまずいているのである。


import requests
res = requests.get('https://book.impress.co.jp/books/1119101162')
res.status_code


たったこれだけのコマンドであるが、実行すると長いエラー文が表示されて、正常時に表示される"200"のコードが表示さず、それ以降のコマンドを受け付けてくれないのである。
教本のうたい文句として、講義+実習のワークショップ形式で、楽しく学べる「はじめてでも挫折しない」Pythonの入門書です------とのことですが、まずもって”実習”が出来ない状態となっているのです。
ソフトのインストールを間違えているかも知れないと、再インストールを実施したが、結果は同じであった。


2)なぜ拒否されるのだろうか?
学習が前に進まないので、いろいろ知れべてみた。まず、https://book.impress.co.jp/ として実行するとやはりエラーが出た。このことはサーバーの入口で拒否されていることを示唆している。
そこで、Yahoo やAmazon などの有名サイトや、普段からアクセスしている20ヶ所ほどのサイトにお邪魔してみたが、すべて OK 表示の"200"のコードを返してくれた。
このことから、教本が提示しているインプレス社だけが、アクセスを制限していると判断しました。


うるさいアクセスを拒否することは、理解できますが、何も「講義+実習のワークショップ形式のサイト」まで拒否するとは、出版物における詐欺ではないか-------!❓


3)問い合わせるも返事なし
もう1週間以上たちますが、返事がありません。無視されているのか、重大なトラブルなのか。この教本は第2版として、2023年2月21日に出版されています。初版は2020年とのことですので、今年の2月までは何ら問題なかったと思われます。


4)学習用のダミーサイトが欲しい
どれだけの読者がアクセス拒否にあったのかわかりませんが、アクセス拒否されると学習が進みません。そこで、自分でダミーサイトを作ってみることにしました。その内容を下記に示します。


  ********************************
作成したダミーサイトの内容を下に示します。

そして、個別の書籍については

のページを作りました。学習用のダミーサイトですから、スクレイピング対象の部分は元本と同じようにするために修正していませんが、他の不要な邪魔な部分はすべて削除しています。必要なリンク以外もすべて削除しています。
  **********************************
ダミーサイトは、レンタルサーバーに開設している我がサイト「鉄道模型工作実験室」内に構成しましたが、著作権を心配して公開はしていません、
  **********************************
文字化けなどのトラブルもありましたが、結果は良好でした。スクレイピングは実施でき、教本の学習を進めることが出来ました。

 ダミー作戦は大成功である  

****************************************************************************

×

非ログインユーザーとして返信する