2017-10-06

Python初心者が3カ月でWebスクレイピングができるようになるために必要な知識




こんにちは、Daiです。最近Pythonが人気ですが、機械学習には手を出せない、とはいえプログラミングの挨拶プログラムを作るのには飽きた!みたいな人って結構多いのでじゃないでしょうか。


最近、Qiitaという技術掲示板でも、PythonのWebスクレイピングの方法を解説する記事が人気でしたが、まったくの初心者にはどうすればいいかわからないというレベル間だったと思います。そこで、今回はプログラミング初心者の人でも、何を学べばWebスクレイピングをPythonでできるようになるか、解説したいと思います。




開発環境


何はともあれ、Pythonが動くようになる環境を構築する必要があります。環境構築というやつですね。僕は基本的にPythonの開発は、Cloud9というクラウド上の開発環境を利用しています。Cloud9を利用するメリットは、環境構築がいらないので、初心者にとっつきやすいところです。詳しくは下の記事を読んでみてください。自動化プログラムを組むくらいであれば、この環境で十分です。


【Pythonの環境構築でもうつまづかない!】 面倒な環境構築は、クラウドに全部任せよう - Cloud9・Microsoft Azure Jupiter Notebook -

Python初心者が必ずぶち当たる壁があります。環境構築です。ある言語を動かすための環境設定する作業が環境構築なのですが、これが実は初心者にとって本当に難しいです。そこで、今回は、一切環境構築せずに、完全無料でPythonを動かす方法を解説したいと思います。



Webスクレイピングをできるようになるために必要な知識


さて、Webスクレイピングをするうえで必要な知識についてまとめておきます。Webスクレイピングとは、Web上のページを構成している言葉(HTML)と、その配置しているスタイル(CSS)を、Javascirptを利用して取得する必要があります。また、Javascirptを便利に扱うjQueryも時折出てきます。


そして、自動でプログラムを実行するには、コマンドラインの操作と、それらプログラムをクラウド上で実行するために、GITの知識が必要になります。


つまり、最低限まとめると
  • HTML
  • CSS
  • Javascirpt(jQuery)
  • jQuery
  • コマンドライン
  • GIT
  • Python
の知識が必要になるわけですね。これらの技術を身に着けて、さらにPythonの基礎を身に着ければ、Webスクレイピングはできるようになります。

え、多すぎじゃね?どこで学べばいいの?


心配ご無用です。すべて基礎レベルでかまいません。しかも完全に全部覚える必要もありません。どうせ忘れるので、頭の中にこんなのあったなぁと入れておいて、あとで紹介する書籍を読みながら、「あ~こういう意味ね」とわかるくらいでいいです。


そして基礎レベルのプログラミングであれば今は無料で学ぶ機会はたくさんあります。個人的におすすめはProgateドットインストールです。これらのサイトを利用すれば、この中に存在する技術は一通り身に着けられると思います。試しにコースを貼り付けておきます。



Progate(プロゲート) | Learn to code, learn to be creative.

学習言語の一覧ページです。WEBサイト制作に必要なHTML/CSS, JavaScript, jQueryや、サーバーサイドのRubyやRuby on Rails, PHPなどが学べます。


ドットインストール

3分動画でマスターする初心者向けプログラミング学習サイトです。HTML, CSS, JavaScript, PHP, Rubyをはじめ、iPhoneやAndroidアプリの作り方も学べます。豊富な動画を見ることで、はじめての人でも無理なくスキルを身につけていくことができます。


これらのサイトから、基本的なHTML、CSS、Javascript、jQuery、Pythonを学習しておいてください。余力があればGitやらコマンドラインやら。ちなみに、暇な大学生であれば、本気出せば1カ月で終わるカリキュラム内容です。頑張ってください!


これらのスキルを身に着けたら、Webスクレイピングを学ぶためには何をすればよいの?


あとはもう、実践あるのみです。僕は『Pythonによるスクレイピング&機械学習 開発テクニック』を一冊だけ読んで、自動化・API取得関係の知識を付けました。この本には後で紹介するAPIを利用して、データベースに格納したり、スクレイピングだったり、定期実行プログラムの組み方など汎用性の高いスキルが非常にわかりやすくのっています。超絶おすすめですね。

『Pythonによるスクレイピング&機械学習 開発テクニック』レビュー

『Pythonによるスクレイピング&機械学習 開発テクニック』を読了しました。 『 Pythonによるスクレイピング&機械学習 開発テクニック BeautifulSoup,scikit-learn,TensorFlowを使ってみよう 』について、レビューします。 Amazonの紹介によると ...

ちなみに、この本には、実在するAPIを利用したり、自分のサイトをスクレイピングをするる方法のバリエーションが少ないです。なので、ここからはオリジナルにコードを書いていくとよいでしょう。


Webスクレイピングできるようになったら、何ができるの?


例えばですけど、SNSで自動でいいねしまくるシステムとか、僕の場合なんかだと好きなAV女優のツイッターボットを作ったりしました。あとは、そうですね。ネット上に存在するデータをスクレイピングで格納して、データ分析なんかをしたり、結構いろいろできます。


【Python】Pythonで遊んだAPIまとめ - DMM ・ Tinder ・ Twitter ・ Slack -

こんにちは、 アダルトサイエンティストのDAI です。会社ではJavaを書かなければならないのにもかかわらず、三大欲求に負けてPythonでエッチなことにしこしこ励んでいる毎日です。 僕のPythonデビューは2017年6月でした。 今では立派にDMMのAPIを利用して自分専用のエッチなBotをつくり、徐々にアダルトサイエンティストとしてキャリアを形成してきました。 ...


ここ最近だと、はてなブックマーク上での言語別ブックマーク数を統計分析したりとかですね。


ぶっちゃけ、日本で廃れているプログラミング言語ってなんなの?

背景 こんにちは、DAIです。ここ最近こんな記事を見かけまして、これって日本だとどうなんだろうなぁと思いました。 IEEE Spectrumは18日、独自の指標によって決定した人気プログラミング言語のランキング「 The Top Programming Languages 2017」を発表しました( Neowin)。 ...


とにかく、ここ3カ月でPythonを始めてから、スクレイピングを学ぶまでに、きちんとしたカリキュラムがなかったので、まとめた次第です。今できることから最も効率よくして学べるカリキュラムだと思うので、ぜひお試しあれ!


注目の投稿

 PythonのTweepyを利用して、Twitter APIを利用している。 その中で、ハマったポイントをメモしておく。 まず、Searchに関して。 Twitter検索は、クライアントアプリ側では、全期間の検索が可能になっている。 一方で、APIを利用する際は、過去1週間しか...