スクレイピングの副業に興味があるので簡単にまとめてみました。
スクレイピングに必要な知識
Python
基本的なことができれば良い。入門書一冊やれば十分とのこと。
以下のライブラリの知識が必要。ライブラリはターミナルで
pip3 install ライブラリ名
と入力。
Requests
HTTP通信用のライブラリ。ウェブスクレイピングやHTMLやXMLファイルからデータを取得するのに使う。
BeautifulSoup
requesteで取得したデータの中から必要な情報を抽出する。
Selenium
データの取得、抽出の両方を行うが、ブラウザを操作してデータを取得するので動作が遅い。
HTML
beautifulsoupではHTMLのツリー状のオブジェクトを取得するのでHTMLの構造を理解する必要がある。body、titleなどタグの構造を理解する必要がある。
CSS
HTMLで記述されたウェブページをどのように装飾するか定義する言語。CSSの中でもCSSセレクタを理解する必要がある。CSSセレクタとは、CSSで定義したデザインをどのHTML要素に適応させるかを指定するもの。
JavaScript
ブラウザ上でWebページをダイナミックに動かすためのもの。情報を取得、抽出する際に理解しておく必要がある。jQuery、Vue.jsなどのフレームワークがありそれらの知識も必要。
デベロッパーツール
chromeのデベロッパーツールではそのサイトのHTML、CSS、JavaScriptのコードを無料で見ることができる。macbookでは情報を得たいサイトで option + command + i を押す。windowsは ctrl + shift + i を押す。
法律
Webページは著作権の保護をうける。収集してデータの譲渡は違法。
規約にスクレイピング禁止と記載されている場合も違法。ただし、利用規約がユーザーとの間で有効となるのは利用規約をユーザーに示し同意をクリックした場合に限るので、会員登録の必要がなく誰でもみられるコンテンツに関しては規約違反とならない。
スクレイピングはサーバーに負担をかけるため、高頻度のスクレイピングをすると当該サイトの業務を妨害したとして偽計業務妨害になることも。sleepメソッドを使って頻度を調節する必要がある。