【Python】「Beautiful Soup」でスクレイピングしたhtmlデータを解析する

前回はWEB上のデータを取得作業を行いました。しかし、スクレイピングで抜き出したWebデータはHTMLタグがいっぱいあって人間が見るとかなり見にくいです。そこで今日は取得したデータを見やすいように整形していきます。

PythonでのHTMLの分析にはBeautiful Soup

PythonでHTMLデータを分析するには「beautiful soup」というライブラリーが便利です。「Beautiful Soup」とは、「requests」で取得したHTMLデータを解析するためのライブラリです。「Beautiful Soup」にはHTMLを解析するための様々なメゾットやセレクタがあるためより効率的に解析することができます。

BeautifulSoupのインストール

コマンドプロンプトから「 pip install beautifulsoup4 」でインストールします。そして、「from bs4 import BeautifulSoup」でインポートします。

BeautifulSoupの使い方

yahoo=BeautifulSoup(r.text,'html.parser')

二つ目の引数は解析の種類を表しています。他にもあるみたいですが効率を気にせずとりあえず解析してる俺スゲーしたいってだけならこれで問題ないと思います。そしてBeautifulSoup が返してくれる変数には検索しやすいメソッドが含まれています。find()は引数で指定したタグを検索して最初にヒットしたものを返してくれます。

>>> yahoo.find(‘a’)

<a href=”https://www.yahoo-help.jp/“><nobr>ヘルプ</nobr></a>

他にも画像を検索したいときは(‘img’)にするとできます。そして、全部検索したいときはfind_all()を使います。検索結果はリストで返されます。

>>> yahoo.find_all(‘a’)

[<a href=”https://www.yahoo-help.jp/“><nobr>ヘルプ</nobr></a>, <a href=”https://www.yahoo-help.jp/app/answers/detail/p/533/a_id/43883“>Internet Explorerの互換表示について</a>, <a href=”https://tourdetohoku.yahoo.co.jp/storyteller/2018/“>被災地・宮城で聞いた「未来につなげたい思い」とは</a>, <a href=”https://rdsig.yahoo.co.jp/smptop/event/201803_bousai/pctl/RV=1/RU=aHR0cHM6Ly9ib3VzYWkueWFob28uY28uanAvcHIvMjAxODAzLw–“>あなたの防災力は何点?「全国統一防災模試」に挑戦</a>,

大体使うのはリンク(a)・画像(img)・表/テーブル(table) でしょう。ループを組み合わせると自動化処理ができますね。

プログラミングの独学はとても難しい


プログラミングは小学校の義務教育にも導入され始めており、これから社会人として生きていく上でプログラミングはもはや出来て当たり前、出来なれば論外というエクセルレベルの必須スキルになりつつあります。そしてそういう話を聞いて参考書なりを購入して独学でプログラミング勉強しようと思っている人も少なくないでしょう。しかしプログラミングを独学で勉強し始めようと思うものの



・「分からない箇所で詰まって挫折してしまった」

・「勉強する時間が足りない」

・「ネットの記事だと情報が断片的でよくわからない」

・「コードのエラーの原因が分からない」



という壁にぶち当たって、プログラミングの勉強を止めてしまう方が少なくありません。独学でプログラミングを勉強してる時間のほとんどはつまづいている時間です。実際僕も最初のころ独学でプログラミングを勉強していた頃はエラーの原因が分からず丸1日を不意にしてしまった・・・そんな苦い経験がありました。



それで僕は一度はプログラミングの学習を諦めてしまいましたが、就活で現実を知る中で「プログラミングを勉強して、いずれフリーランスとして自由な生き方がしたい」「エンジニアとして若いうちから高収入を得たい」という気持ちから一念発起して「侍エンジニアのwebサービスコース」に申し込み、プロのエンジニアの方に対面でマンツーマンでPythonによるWebサービス作り方とWeb技術の基本を教えてもらい、ようやくプログラミングが理解でき、今ではエンジニアとしてそこそこの暮らしができるようになりました。





侍エンジニアでは、とりあえずプログラミングやインターネットの基本を知っておきたい人から、HTML・cssなどでWebサイトやWebアプリを作ってみたい人やPythonを勉強してデータサイエンティストやAIエンジニアになりたい人まで幅広いニーズに応えた様々なコースが用意されています。



IT業界と言ってもエンジニアの仕事はプログラミング言語次第でサーバーから機械学習・ディープラーニングまで多種多様ですし、侍エンジニアの無料レッスン(カウンセリング)を受けてみて、自分のやりたいITの仕事は何なのか?を見つけるのがエンジニアへの第一歩になります。ちなみに今侍エンジニアの無料レッスンを受けると1000円分のAmazonギフト券がもらえるので、試しに受けてみるだけもお得です。


自分は半端に独学やオンラインスクールで勉強して金と時間を無駄にするくらいなら、リアルのプログラミングスクールに通ってしっかりプログラミングを勉強した方がいいと思います。ちなみに今、侍エンジニアに申し込むと、25歳以下の学生の方であれば、受講料が20%OFFになるので超お得です。


そして、プログラミングは大勢で授業を受けたり漫然とオンライン学習をするよりも自分が分からない箇所をピンポイントでプロの講師に直接質問して、ちゃんと納得するというスタイルの方がお金は確かに少し掛かりますが、独学で学ぶよりも絶対にモノになります。


シェアする

  • このエントリーをはてなブックマークに追加

フォローする