Python(パイソン)で作れるスクレイピングについて|サンプルコードつきで実践解説

プログラミング

多くのプログラマーやSEから高い人気と注目を集めているプログラミング言語のPython(パイソン)。AIの開発に多用されることでおなじみですが、スクレイピングの用途にも多く活用されているプログラミング言語です。

 

今回の記事では、そもそもスクレイピングとは何かを解説するとともに、なぜPythonがスクレイピングに向いているのか、基本的な手順をサンプルコード付きで詳しく解説します。

 

これからプログラミングを始めたいと考えている初心者の方は、ぜひ入門学習として参考にしてみてください。

ITにおけるスクレイピングとはどんな意味か?

スクレイピング(scraping)とは、日本語で「かき集める」、「収集する」といった意味に直訳されます。

ITの世界におけるスクレイピングとは、一般的に「Webスクレイピング」のことを指し、Web上に散らばったさまざまなデータをコンピュータで抽出する技術を意味します。

スクレイピングを理解するうえで、混同しやすい言葉に「クローリング」があります。

クローリングとは、日本語で「巡回する」といった意味を指します。

すなわち、Web上においてどこに何があるのか、Webサイトの構造がどうなっているのか、といったことを把握するのがスクレイピングにあたります。

スクレイピングは特定のWebサイトからデータを抽出するのに対し、クローリングはあくまでも巡回するのみであり、データのダウンロードや抽出までは行わないという違いがあるのです。

なぜスクレイピングをする必要があるのか?

データの収集と聞くと、わざわざコンピュータで抽出しなくても人の手で十分間に合うのではないか、と考える方も多いでしょう。

たとえば、「A社から発売される新製品の商品名と価格のデータを抽出したい」という場合には、自動化をするよりも人の手で作業をしたほうが効率的です。

しかし、たとえば「A社の朝10時・昼12時・午後3時の株価を毎日記録したい」という場合には、ルーチンワークを自動化したほうが業務効率が上がります。

さらに、A社だけでなくB社、C社と対象が増えていった場合にはさらに人手を要することになるでしょう。

このように、膨大なデータを継続的に収集する場面においてスクレイピングが活躍するのです。

◆Python(パイソン)で出来る機械学習とはなにか|サンプルコードつきで実践解説!

Python(パイソン)はスクレイピングに向いている言語?

スクレイピングを実行するためには、対象となるWebサイトや収集するデータに合わせてプログラムを構築する必要があります。

スクレイピングが可能なプログラミング言語は複数ありますが、なかでもPythonは定番の言語のひとつといえるでしょう。

Pythonがスクレイピングに多用される主な理由としては、ライブラリが豊富に用意されていることが挙げられます。

特にスクレイピングで利用されることの多いライブラリとしては、「Requests」と「BeautifulSoup」があります。

そもそもスクレイピングには「データの取得」、「データの抽出」、「データの保存」という3つのプロセスがありますが、「Requests」は対象のWebサイトからデータを取得するために活用されるライブラリです。

そして、「BeautifulSoup」はデータの抽出を担い、対象のWebサイトからHTMLデータを抽出することができます。

◆【初心者向け】Python(パイソン)で作れるアプリ開発について|どのアプリ向き?

Python(パイソン)のスクレイピングを使った活用事例

Pythonでスクレイピングを実行することで、企業にとってはどのような用途に活用できるのでしょうか。

スクレイピングの活用事例や具体的にできることを2つ紹介します。

ネット通販における市場調査

ネット通販は実店舗での買い物と異なり、比較的容易に販売価格を比較できます。

それだけに、販売店側にとってはいち早く価格の改定を行わなければならず、タイミングが遅くなると他社に顧客が流れてしまう懸念があります。

そこで、スクレイピングで対象製品の市場価格を定期的に調査し、他社に顧客が奪われないよう迅速な価格改定に役立てているケースも少なくありません。

営業先の開拓

新たなビジネスチャンスを獲得するために、新規顧客の開拓は重要な業務のひとつです。

しかし、特に法人営業の場合、あらかじめアポイントをとってからでなければ商談を断られてしまうケースも多く、営業先のリスト化は重要です。

たとえば、自社の周辺にある未開拓の企業をリストアップする場合、インターネットで該当の企業を一社ずつピックアップし調べる方法もありますが、範囲が広くなればなるほど手作業では非効率化していきます。

そこで、スクレイピングによって対象となるエリアや業種で企業を絞り込み、社名や住所、連絡先などを収集するといった方法が有効です。

イチから学べる~Python基礎講座~ 講座紹介

Python(パイソン)を使った実際のスクレイピングのやり方

Pythonはスクレイピングに適したプログラミング言語であることは理解できましたが、実際に初心者がスクレイピングのプログラムを構築するにはどのような手順で進めていけばよいのでしょうか。

上記でも紹介したライブラリ「Requests」と「BeautifulSoup」のサンプルコードを挙げながら、スクレイピングの入門として基本的な手順を紹介します。

◆【初心者向け】Python(パイソン)で出来るデータ分析・統計解析とは?手順も紹介

データの取得

まずは「Requests」のライブラリを使用しWebサイトのデータを取得します。

url = 'https://********.co.jp'
html = req.get(url).content
soup = BeautifulSoup(html, 'html.parser')

が取得できているかどうかは以下のコードを実行することで確認できます。

response.text[:300]

上記の「300」という数字は、HTMLデータの冒頭から表示させる文字数を表します。

データの抽出

次に、「BeautifulSoup」のライブラリを使用し、対象となるデータを抽出します。

たとえば、HTMLファイルの中に記載されているリンク先のURLを抽出する際には、以下のコードを実行します。

nameA= datetime.date.today()
nameA2 = str(nameA) + '.csv'

tags = [tag.text for tag in soup.find('a').find_all('/a')]

HTMLではリンク先URLを「<a href=”https://********.co.jp”></a>」と記載するため、「”a”」というタグを指定することですべてのリンク先を抽出できます。

データの保存

最後に、抽出したデータを保存します。今回は、CSV形式でのファイルに書き込むケースを例に紹介しましょう。

with open(ファイル名, 'w') as f:
    writer = csv.writer(f, lineterminator='\n')
    for tag in tags:
        writer.writerow([tag])

上記の1行目でCSVファイルを開き、2行目で改行用のコードを定義します。

◆Python(パイソン)は副業で稼げるの?未経験から始める方法と土日案件の取り方!

J Career Schoolならイチから資格対策講座まで!

さまざまなビジネススキルを習得できるオンラインスクール「J Career School」では、「ITパスポート試験」に対応した講座「イチから学べるPython基礎講座」を開設しています。

また、何よりも資格取得を前提とした講座ですので、最短1か月での合格を目指し、限られた時間のなかで効率的に学習を進められます。

サブスクリプション型の動画が視聴し放題、質問し放題なので自分のペースに合わせて受講できます。

講師の先生や個別サポートもあり、わからないところがあれば質問し放題なので、初心者の方でも納得がいくまで学習を進めることができます。

【30秒講座紹介】イチから学べるPython基礎講座

まとめ

スクレイピングはマーケティングや業務効率化など、さまざまな用途に活用されています。

スクレイピングが可能なプログラミング言語は数多くありますが、なかでもPythonは豊富なライブラリが用意されていることもあり、効率的にプログラムが構築できます。

Webサイトからさまざまな情報を効率的に収集したいと考えている方は、今回紹介した内容を参考にしながらスクレイピングに挑戦してみてはいかがでしょうか。

90秒で自分に最適なキャリアタイプ診断!

キャリアタイプ診断