ウェブノウハウ

WEB KNOWHOW

Pythonでスクレイピング → WordPressサイトに掲載

4. スクレイピングの基本的なやり方

今回のテーマでは最終的にこちらのページからデータをスクレイピングします。
https://100webdesign.jp/services/dev_prj/

イエス。当100ウェブの「100ウェブの制作・開発案件紹介」ページです。
このページの検索フォームにキーワードを入れて、出てきた案件のタイトルとタグをスクレイピングして他のWordPressサイトに掲載すること」が、今回のテーマの最終的なゴールとなります。
 
それではページの全体像を見てみましょう。特に検索フォーム周辺のイメージを見てみるとこのあたり。
スプレイピングターゲットページ
 
このページを例にとりながら、そもそも「スクレイピング」って実際のところ何をしてるのかについて、簡単に説明していきます。
この検索フォーム周りのHTMLを見てみましょう。

<h1 class="page_ttl bgextend bgLRextendTrigger"><span class="bgappearTrigger"><span class="initial">S</span>100ウェブの制作・開発案件紹介</span></h1>
<p class="mt-3 mt-md-5">100ウェブでは様々なウェブ制作・開発案件に携わっております。<br>
その中から一部、クライアントからご相談いただいた内容とその実装におけるポイント、工期、予算について、ご紹介します。<br>
これを見れば、100ウェブで何ができて、いくらくらいでできるのか、だいたいお分かりいただけると思います。<br>
同じような制作・開発をお考えの方がいらっしゃいましたら、参考にしていただければ幸いです。</p>
<form role="search" method="get" id="searchform" class="searchform" action="https://100webdesign.jp/services/dev_prj/">
  <div>
    <input type="text" value="" name="s" id="s" />
    <input type="hidden" name="post_type" value="dev_prj" />
    <input type="submit" id="searchsubmit" value="検索" />
  </div>
</form>

 
スクレイピングとは、人に代わってプログラムが疑似的なブラウザを使ってウェブページにアクセスし、ウェブページのHTMLの中から必要な要素を探す一連の動きのことを言います。
たとえば上の検索フォームにキーワードを入力して検索しようとするなら、プログラムのフローは次のようになります。

  1. https://100webdesign.jp/services/dev_prj/ というウェブページにアクセスする
  2. “searchform”というIDがついた要素(=form)を探し出す
  3. その中の1つ目の“input”タグ(=検索フォーム)を探し出す
  4. そこにキーワードを入れる
  5. “searchsubmit”というIDがついた要素(=「検索」ボタン)を探す
  6. それを押す
  7. 検索結果ページが表示されるので、同様の手続きで各要素を取得していく

 
まさに人間がやっているアクションを細分化して、ひとつひとつのアクションをプログラムにしていくだけですが、プログラムによる要素の探し方は、人間のように目で見て判断することができないので、HTMLのコードを取得して、その中から特定のclass, id, tagを探して取得する、といった方法になります。
そしてPythonではこれらの動きを、前章でインストールした requestswebdriver_managerselenium の3つのライブラリを使って、簡単に記述することができます。
 
今回はスクレイピングの基本的な考え方について紹介しました。

【100ウェブ新着情報メルマガ】

WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!