IT系転職サイトをスクレイピングしてフレームワーク別求人数を取得

求人情報情報サイトPaizaスクレイピングし、フレームワーク別の求人数を取得した。

結果

取得日時 2023-11-03

フレームワーク 求人数
指定なし 4654
Vue.js 1128
React 1088
Laravel 813
Spring 751
Node.js 751
jQuery 599
Ruby on Rails 585
.NET Framework 463
Angular 380
Next.js 345
Nuxt.js 332
Django 298
CakePHP 285
Struts 278
Flutter 239
Android SDK 228
iOS SDK 221
Unity 200
React Native 198
Bootstrap 127
FuelPHP 117
Flask 113
自社フレームワーク 112
Seasar2 100
Java EE 98
Symfony 83
Zend Framework 80
Express 80
Play Framework 59
CodeIgniter 58
TensorFlow 57
MyBatis 50
Smarty 46
Unreal Engine 43
OpenGL 41
Hibernate 34
Echo 30
Gin 30
Xamarin 30
Phalcon 27
iBATIS 26
Backbone.js 26
JSF 24
Slim 24
DirectX 15
cocos2d-x 14
prototype.js 12
Knockout.js 10
Riot.js 9
Sinatra 8
Catalyst 7
cocos2d 7
Chainer 7
Tornado 6
Ethna 5
Pyramid 5
Dojo Toolkit 4
Revel 4
Titanium Mobile 3
Caffe 3
Pylons 2
actix-web 2
Camping 1
Waves 1
ngCore 1
Ember.js 1
Foundation 1

取得手順

Paizaの求人検索フォームにはフレームワーク選択欄が有り、ここにフレームワークが列挙されている。

Paizaの求人検索フォーム

こちらで他の条件を何も指定せずStrutsの求人のみ探すと次のようなURLになる。
https://paiza.jp/career/search/?c%5Bdev_language%5D=&c%5Bpaiza_rank%5D=&c%5Bpf%5D%5B%5D=&c%5Bsalary_range_min%5D=&c%5Bdev_frameworks%5D=300&button=

検索フォームのフレームワーク選択UIはul要素で実装されている。
これをデベロッパーツールで選択した上で、コンソールで次のスクリプトを実行する事でフレームワーク名とIDの一覧がJSONで得られる。

JSON.stringify(Array.prototype.map.call($0.querySelectorAll("li"), (li) => ({name: li.textContent, id: li.dataset.value})))

結果

[{"name":"指定なし","id":""},{"name":"Struts","id":"300"},{"name":"Seasar2","id":"301"},{"name":"JSF","id":"302"},{"name":"Spring","id":"303"} 以下省略

これらの情報から、各フレームワーク別のURLが得られる。
後は、好みの手法でスクレイピングすればよい。

今回はPowerAutomate Desktopを用いた。

PowerAutomate Desktopで構築した処理のスクリーンショット