【Python】非プログラマーのためのスクレイピング講座目次(Colaboratory) | ムノログ 合同会社ムジンケイカクプロのITノウハウブログ
Pythonと機械学習

【Python】非プログラマーのためのスクレイピング講座目次(Colaboratory)

python Pythonと機械学習

マウント取られてますか?
会社員時代に、社内外で「できる感じの人」が四六時中マウントとってきて、気軽に質問もできない。
質問サイトでもマウントとる人がいるし、どうすりゃこの不快な思いを回避できるのか???
そんな、悩んだ時期が私にもありました。

マウント取られながら話を聞くのが面倒なので、JAVAを勉強しPHPからPythonと渡り歩いてきました。

私自身が非プログラマーなので、あなたの気持ちがわかるって話です。

そこでスクレイピングは学習の役に立つという話です。
結果がすぐ出るのと、自分のブログをスクレイピングすれば、バックアップにもなります。

あなたが何をスクレイピングされるかはわかりませんが、基礎的なことがわかっていないと作れないし、外注もできない。
そこでこの講座をオープンしました。

ブログをあまりに更新しないので、SEOランクがダウンしたというのも理由です。

関連コンテンツ目次

【Python】sqlite3でDBの用意

【Python】Googleスプレッドシートの読み込み

準備

GoogleアカウントとColaboratoryの利用環境です。

Google Colaboratoryを利用します。
アクセスして、表示された説明を読んでください。

Google Colaboratory

注意

私は、別に綺麗にプログラムを書けるわけでも、知識豊富なわけでもありません。

このコンテンツは、気軽に触って学べれば、あとは自分で頑張るって人を応援するコンテンツです。

Colaboratoryを使って環境構築や個々人の環境の差をなくしています。

Colaboratoryは速いです。

基礎的なプログラムを作っていく

とりあえずサンプル。

こういったライブラリやパッケージという便利なプログラムの塊を使って、処理を助けてもらいます。

BeautifulSoup(びゅーてぃふるすーぷ)はスクレイピングにお役立ちのパッケージで、HTMLを解析して見やすくしてくれます。

import requests
from bs4 import BeautifulSoup

URLを叩く関数を作る

以下のdef html_getは私が勝手に作った関数です。
よく使います。

#URL叩く
def html_get(url):
  
  html_text = requests.get(url)
  # インスタンスの作成
  res = BeautifulSoup(html_text.content, 'lxml') # or html.parser or html5lib おそらく重いはずだがブラウザ表示に近い メリットも大有り 

  return res

下記の#@param {type:”string”}
入力欄が出て便利です。

URLは任意のスクレイピング対象に変えてください。

url = 'https://mujinkp.co.jp/' #@param {type:"string"}
res = requests.get(url)         ##requestsを使ってデータ取得でレスポンスが返ってくるからres
res.raise_for_status() # 例外処理 200か201かそのあたりでなければエラー内容を吐き出して処理を止める
res
res.status_code
res.content
res.contentで取得したHTMLの中身を見ます。

解説と気をつけること

スクレイピング禁止と銘打っているサイトはスクレイピングしてはダメ。
訴えられるとかそういうことではなく、単に迷惑だからです。

別にスクレイピング禁止となっていなくても、Googleみたいに勝手にサイト内のソコカシコをスクレイピングしちゃうサイトは迷惑だったりしますよね。

ですから、URLを叩いて内容をGETした時に、レスポンスをみてエラーが出たらそこで止めるか、リトライに時間をかけることに注力してください。

くれぐれもエラーが出たからといって、ガンガンリクエストをかけないように。

そう、それは迷惑だから。