こんにちは、シタテルエンジニアの工です!
マーケティングチームからページャー付きのWEBサイト全ページのhtmlが欲しいと言われましたので、簡単なRuby+Nokogiriスクレイピングコードを書きました。
今回は、fromAnaviさんのページから、弊社渋谷オフィス周辺のアルバイト情報のhtmlをGetしてみます!
froma.txt
ハードコーディングだらけですが、即興ということで今回はこここまで。
RubyとNokogiriを使ったシンプルなスクレイピングを紹介しました。
Nokogiri
,
Ruby
,
スクレイピング
マーケティングチームからページャー付きのWEBサイト全ページのhtmlが欲しいと言われましたので、簡単なRuby+Nokogiriスクレイピングコードを書きました。
今回は、fromAnaviさんのページから、弊社渋谷オフィス周辺のアルバイト情報のhtmlをGetしてみます!
Nokogiriをインストール
gem install nokogiri
コーディング
scraping.rbrequire "open-uri"
require "nokogiri"
file = File.open("froma.txt", "w")
(1..117).each do |page|
charset = nil
doc = Nokogiri::HTML(open("https://www.froma.com/baito/jobList/?s_area_cd=1i2002&s_area_cd=1i2004&sort_cd=&edition_cd=1&shrt_indx_cd=1002&st=08&page=#{page}"))
file.puts(doc.xpath("//div[@class='main']").to_html)
end
file.close
それでは取得してみます 🚀
$ ruby scraping.rb
出力結果froma.txt
<div class="main">
<ol class="breadcrumbs" itemprop="breadcrumb">
<li><a href="/index.html">全国のアルバイト/バイト</a></li>
<li><a href="/P01/">関東</a></li>
<li>渋谷駅周辺、原宿/表参道の仕事情報を探す</li>
</ol>
<!-- インクルードエリア11(編集用上エリア) -->
<!-- /インクルードエリア11(編集用上エリア) --><h1 class="hd-basic-1">「いろいろな条件」のアルバイト/求人情報</h1>
<table class="scp scp--job-list">
<colgroup>
<col style="width:96px;">
<col style="width:131px;">
<col style="width:96px;">
<col style="width:406px;">
</colgroup>
<tr>
<th>勤務地</th>
<td colspan="3" class="scp-area">
<div class="scp-area-main">
<ul class="scp-area-main__txt">
<li>渋谷区 > 渋谷駅周辺、原宿/表参道</li>
</ul>
<div class="scp-area-main__btn"><a href="/baito/ajax/jobSearchCond/doAreaCond?st=08&sort_cd=&shrt_indx_cd=1002&s_area_cd=1i2002&s_area_cd=1i2004&edition_cd=1" class="btn-panel--main jsc-modal-trigger-area" onclick="sendSC_ListLimitPanel('1000');">エリアを選ぶ</a></div>
</div>
<div class="scp-area-sub">
<div class="btn"><a href="/baito/ajax/jobSearchCond/doAlongRailCond?st=08&sort_cd=&shrt_indx_cd=1002&s_area_cd=1i2002&s_area_cd=1i2004&edition_cd=1" class="btn-panel--sub jsc-modal-trigger-rail" onclick="sendSC_ListLimitPanel('2000');">沿線・駅を選ぶ</a></div>
</div>
</td>
(長いので割愛)
無事に取得できました 🍻ハードコーディングだらけですが、即興ということで今回はこここまで。
RubyとNokogiriを使ったシンプルなスクレイピングを紹介しました。