Skip to content

Instantly share code, notes, and snippets.

@YuukiToriyama
Last active June 5, 2020 13:09
Show Gist options
  • Save YuukiToriyama/18515c62bbc8ef77223030de58ada210 to your computer and use it in GitHub Desktop.
Save YuukiToriyama/18515c62bbc8ef77223030de58ada210 to your computer and use it in GitHub Desktop.
タイムズ駐車場検索スクレイピング

タイムズ駐車場検索からスクレイピング

2020/06/05

タイムズの駐車場検索(https://times-info.net/)の検索結果からあるエリアの駐車場一覧を取得する。
検索結果画面でブラウザの開発メニューを開き、コンソールに以下のjavascriptコードを入力すると、駐車場の名前、駐車可能台数、時間別の料金、詳細ページへのリンクがまとまったjsonデータが出力される。

var parkings = [];
var parks = document.querySelectorAll(".l-search-parking-column-inner");
parks.forEach(park => {
	var name = park.querySelector(".s_ichiran_info_name").innerText;
	var capacity = park.querySelector(".s_ichiran_info_count").innerText;
	var table = park.querySelector(".l-search-parking-table");
	var fee = {};
	table.querySelectorAll("tr").forEach(tr => {
		var label = tr.querySelector("th").innerText;
		fee[tr.className] = {
			label: tr.querySelector("td").innerHTML
		}
	})
	var link = park.parentNode.href;
	var json = {
		name: name,
		capacity: capacity,
		fee: fee,
		link: link
	}
	parkings.push(json);
})
var data = JSON.stringify(parkings);
var l = document.createElement("a");
l.href = "data:text/plain," + encodeURIComponent(data);
l.download = "output.json";
l.click();

たとえば上京区の検索結果ページでコードを実行してみると以下のようなjsonが出力される。

[
	{
		"name": "タイムズ上京区総合庁舎駐車場",
		"capacity": "7",
		"fee": {
			"s_ichiran_info_weekDay": {
				"label": "08:00-20:00 40分 200円<br>20:00-08:00 60分 100円"
			},
			"s_ichiran_info_holiDay": {
				"label": "当日1日最大料金1200円(24時迄)<br>08:00-20:00 40分 200円<br>20:00-08:00 60分 100円"
			},
			"s_ichiran_info_special": {
				"label": "\n\t\t\t\t\t\t\t\t\t\t\t"
			}
		},
		"link": "https://times-info.net/P26-kyoto/C102/park-detail-BUK0035337/"
	},
	{
		"name": "タイムズライフ二条駅前店",
		"capacity": "149",
		"fee": {
			"s_ichiran_info_weekDay": {
				"label": "当日1日最大料金660円(24時迄)<br>00:00-00:00 60分 220円"
			},
			"s_ichiran_info_holiDay": {
				"label": "00:00-00:00 60分 220円"
			},
			"s_ichiran_info_special": {
				"label": "\n\t\t\t\t\t\t\t\t\t\t\t"
			}
		},
		"link": "https://times-info.net/P26-kyoto/C104/park-detail-BUK0028138/"
	},
	{
		"name": "タイムズ川端二条",
		"capacity": "14",
		"fee": {
			"s_ichiran_info_weekDay": {
				"label": "駐車後24時間 最大料金1100円<br>00:00-00:00 30分 220円"
			},
			"s_ichiran_info_holiDay": {
				"label": "\n\t\t\t\t\t\t\t\t\t\t\t"
			},
			"s_ichiran_info_special": {
				"label": "\n\t\t\t\t\t\t\t\t\t\t\t"
			}
		},
		"link": "https://times-info.net/P26-kyoto/C103/park-detail-BUK0026298/"
	}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment