マウント取られてますか?
会社員時代に、社内外で「できる感じの人」が四六時中マウントとってきて、気軽に質問もできない。
質問サイトでもマウントとる人がいるし、どうすりゃこの不快な思いを回避できるのか???
そんな、悩んだ時期が私にもありました。
マウント取られながら話を聞くのが面倒なので、JAVAを勉強しPHPからPythonと渡り歩いてきました。
私自身が非プログラマーなので、あなたの気持ちがわかるって話です。
そこでスクレイピングは学習の役に立つという話です。
結果がすぐ出るのと、自分のブログをスクレイピングすれば、バックアップにもなります。
あなたが何をスクレイピングされるかはわかりませんが、基礎的なことがわかっていないと作れないし、外注もできない。
そこでこの講座をオープンしました。
ブログをあまりに更新しないので、SEOランクがダウンしたというのも理由です。
関連コンテンツ目次
準備
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
解説と気をつけること
スクレイピング禁止と銘打っているサイトはスクレイピングしてはダメ。
訴えられるとかそういうことではなく、単に迷惑だからです。
別にスクレイピング禁止となっていなくても、Googleみたいに勝手にサイト内のソコカシコをスクレイピングしちゃうサイトは迷惑だったりしますよね。
ですから、URLを叩いて内容をGETした時に、レスポンスをみてエラーが出たらそこで止めるか、リトライに時間をかけることに注力してください。
くれぐれもエラーが出たからといって、ガンガンリクエストをかけないように。
そう、それは迷惑だから。
当サイトはリンクフリーです。
ご自身のブログでの引用、TwitterやFacebook、Instagram、Pinterestなどで当サイトの記事URLを共有していただくのは、むしろありがたいことです。
事前連絡や事後の連絡も不要ですが、ご連絡いただければ弊社も貴社のコンテンツを紹介させていただく可能性がございます。