Pythonでスクレイピングをしてみたいけど、どんなことを知っておく必要があるんだろう?
本記事ではこのような疑問に答えていきます。
今ではすっかり慣れてしまい、つまづくこともなくなったスクレイピングですが、始めたばかりの時は全然うまいこといかず悩んでばかりでした…
自分が初めてスクレイピングをしたとき何につまづいたか、何を知っておけばもっとスムーズにスクレイピングができたか思い出しながら書きました。
これからPythonでスクレイピングしたい人の参考になれば幸いです。
注意:ガチの初心者のクセに背伸びしてちょっと複雑なサイトをスクレイピングしようとしている人向けに書いてます(笑)
大前提:簡単なPythonのコードを書けること
とっても当たり前なことなんですが、簡単なPythonのコードは自分で書けるようにしておいてください。
で、「簡単ってどの程度コードが書ければいいの?」って気になりますよね。
基本的には書店などに行くと並んでいる初心者向けのPythonの本を1冊マスターしていればまったく問題ないと思います。
はじめてスクレイピングをしたときは「Pythonスタートブック」という超簡単な入門書しか読んだことがない状態でしたが、Pythonのコーディングで困ることはありませんでした。
紹介した本はPythonの入門書の中でも特に簡単なものだと思いますので、他の入門書などを使っている人でもまったく問題ないはずです。
HTMLやCSSが読めること
スクレイピングをしたいと思っている人なら
って方はいないと思いますが、HTMLとCSSの知識がないとスクレイピングは無理です。
自分は過去にプログラミングのオンラインスクールを受講していた時にサイトを作ったことがありました。
その時にHTMLやCSSを書いたことがあったのでスクレイピングができる程度のHTMLやCSSの知識はありました。
HTMLやCSSの知識に不安な人は「Progate」のHTML・CSSコースなどを2周ほどしてみればいいと思います。
Progateはプログラミングのオンライン学習サービスですが、本にまとまっている方が手元でペラペラ見ることができて便利かも… まぁ、この辺は好みの問題。
スクレイピングする時はあくまで「サイトを記述しているHTMLが読めること」が必要で、別にHTMLやCSSを書ける必要はないので浅く理解していれば問題ないです。
Javascriptなどの最低限の知識があること
自分はjavascriptをほとんど触ったことがなく、苦労した覚えがあります。
スクレイピングになんでjavascriptが出てくるかっていうと、webサイトってHTMLとCSSとjavascriptとかを組み合わせて作られているんです。
例えば「次へ」のボタンをクリックするとjavascriptの関数が作動して・・・みたいな感じのものが多々。
↑こういうボタン結構ありますよね。そのjavascriptの関数の中身が読めないと先に進めないので、嫌々ながらもjavascriptのコードを解読することに。
また、javascriptといっても、jQueryやVue.jsなどといったフレームワークを用いて作られているものもあり、生のjavascript以外の知識が要求される場合も・・・
自分が行ったサイトではjQueryが使われていましたが、jQueryは触ったことがなく、逐一、調べながらやりました、骨が折れます笑
HTTP通信がなんとなくわかること
HTTP通信とか、cookieとか、プロトコルとか名前はちょっと聞いたことあるけど、正直なんのことかわからない人が多いのではないでしょうか?
ガッツリ理解しておく必要こそないですが、HTTP通信の知識が皆無ですとそれはそれで困ります(笑)
僕は図書館で「HTTPの教科書」という本を借りて読みましたが、全部で11章あるうちの初めの3章までの知識で十分でした。
HTTP通信については正直、ネットで分らなくなったら逐一調べるというスタイルでもやっていけます。
Chromeのデベロッパーツールが使えること
ChromeとはもちろんGoogleChromeのことですが、Chromeのデベロッパーツールは本当に重宝します。
デベロッパーツールを使うと以下のような情報を知ることができます。
- そのサイトのHTML,CSS
- そのサイトを作るのに使われているのJavaScriptのコード
- クリックしたときに受け取ったり、送信した情報
もちろん無料で提供されており、使い方はスクレイピングをするサイトを開いて「コントロールボタン・シフトボタン・Iボタン」を押すだけ。
正直、デベロッパーツールを使うことなしにスクレイピングするというのは不可能だと思います。
今までデベロッパーツールに触れたことがない・ほとんど使ったことがないという方は色々いじったり調べたりして慣れましょう。
まとめ:スクレイピング前に必要なスキル・知識
おさらいしておきます。スクレイピングするには
- Pythonのコードが最低限かけること
- HTML,CSSを読むことができること
- JavaScriptやそのフレームワークに関する知識が最低限あること
- HTTP通信に関してなんとなく知っていること
- GoogleChromeのデベロッパーツールが使えること
この5つがないと厳しいです。JavaScript,jQueryやHTTP通信に関しては簡単なサイトをスクレイピングする場合には必要とならない場合もあります。
が、残りの3つに関しては必須だと考えてください。自分にないスキルがあれば少し勉強して下さい。
とはいえ、どれもさほど深く踏み込んだ知識を必要とするものはないので、簡単に勉強するだけで大丈夫だと思いますよ♪
コメント