求人情報情報サイト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の求人検索フォームにはフレームワーク選択欄が有り、ここにフレームワークが列挙されている。
こちらで他の条件を何も指定せず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を用いた。