Pythonでウェブスクレイピング(ウェブサイトからの情報抽出) 〜ライブラリ紹介とウェブページのソースコードの見方〜
今回はクローリングおよびウェブスクレイピングという技を紹介したいと思います。クローリングやスクレイピングというのは簡単にいうとウェブサイトに載っている情報から自分が欲しい情報だけを抜き取ってくるための技術です。例えばウェブサイトに載っている写真だけを抜き出したり、特定の数値だけを抜き出したりといった使い方ができます。
・用語説明
①クローリング
ウェブサイトからHTML情報やそのほかの情報を取得してくる技術のこと
取得したHTML情報等から自分の欲しい情報を抜き出す技術のこと
・スクレイピング・クローリングのためのライブラリ
今回はPythonでスクレイピングをするためのライブラリーを紹介したいと思います。
①requests
こちらはウェブページを取得するためのライブラリです。
②BeautifulSoup4
こちらはウェブページからデータを抜き出すためのライブラリです。
基本的に上にあげた二つを使ってクローリング・スクレイピングをする時には、①のrequestsを使ってウェブページの情報を取得し、BeautifulSoup4を使ってデータを抜き出すという形になります。
③Scrapy
こちらはクローリング・スクレイピングの総合フレームワークとなっていて、このフレームワーク一つでウェブページの情報を取得し解析し特定情報を抜き出してくることができます。より複雑なクローリング・スクレイピングを実装したい時にはこちらを使うといいかもしれません。
調べてみたら他にも色々フレームワークはあるらしいのですが、今回は自分が使ったことあるやつのみを紹介させていただきました。
またそれぞれのライブラリの詳しい使い方は今後別記事として紹介したいと思います。と言ってもそれぞれ調べていただければすでにたくさん記事があるので、僕が書くまでもないかもしれませんが。
・ウェブサイトのHTML情報を見る方法
こちらはウェブサイトを作ったことある人なら、スクレイピング・クローリングを使ったことなくても、知っているかもしれません。
今回は検索エンジンとしてGoogle Chrome を例に、ページとして当ブログを例に使います。
まずHTML情報を見たいウェブページで右クリックをします。すると下のようになると思います。
ここで検証というところを押します。すると下のような画面となります。
このようにHTMLの情報を見ることができます。
これだけでもがんばって目視で確認していけば問題はないですが、ここで今回は3つ便利な使い方を紹介したいと思います。
①ウェブサイト上の文字とHTMLの情報の対応づけを見る方法
上の二つ目の写真の左中央の赤く囲ってあるところをクリックします。するとウェブサイト上の文字とHTMLの情報の対応づけを見るモードとなりマウスをウェブサイト上の文字のところに合わせると下のようにそれに対応するHTMLが青く強調されます。
コピーしたいHTML情報の上で右クリックをすると下のようになります。
ここでCopyというところにいくと下の写真のようにオプション付きでコピーすることができます。ここでCopy selectorをすればCSSセレクタをCopy JS pathをすればjavascriptのパスをといった具合にコピーできます。
③HTML情報の特定の文字を含む部分を見つける
ます検証画面でcommand+Fを押します(Macの場合)。すると下の写真のように下に文字を検索するところが現れます。ここに文字を打ち込めばその文字と一致する箇所を見つけてくれます。例えばclass名で検索すれば同じクラスで書かれた部分を全て見つけることができます。
最後にHTML情報だけを大画面で見る方法を紹介します。先ほどと同様にウェブページで右クリックをします。すると下のような画面になります。
ここで先ほどは検証を押しましたが、今度はページのソースを表示を押します。すると大画面でHTML情報を見ることができます。
・クローリング・スクレイピングの使い所
①定期的に更新されるものの情報を抜き出す(例株価、売上情報等)
定期的に更新されるものを毎回手動でウェブサイトからコピーしてきて手元に保存するのは大変ですよね。そんな時スクレイピングのコードを書いておけば、そのコードを実行するだけで、情報を抜き取ることができます。ただしウェブサイトの構造(htmlに書かれたタグやclassなどのこと)が変わったらスクレイピングのコードも書き直さないといけません。
②機械学習などのために大量のデータをネットから拾ってくる(例 google検索の画像検索に載っている画像を上から100個ダウンロードしてくる)
機械学習などで大量のデータが必要な時にそれを全て手動でダウンロードしてくるのは大変ですよね。そんな時にもスクレイピング・クローリングは役に立ちます。何かしらの規則を作ってウェブページを順番に取得し、それらのページに対して処理をしていけばいいです。例えば上の例ではgoogle検索の画像検索で上位から順番に100個目のサイトまでという規則を作り順番にウェブページを取得し、取得してきたページから画像を抜き出すという処理をすれば良いです。
経営者とかだとスクレイピングした情報から経営戦略を立てたりとかに活用されたりもされているようですが、個人で趣味としてやっていることに使えるのはこの辺りかなと思います。いずれにせよ共通しているのは大量のデータを抜き出すという点です。少数のデータを抜き出す場合にはわざわざプログラムを書くよりも手動で抜き出した方が早いなんて場面も多いでしょう。
・注意点
スクレイピングを使うことで、ネットから情報を抽出してくることができますが、この方法はウェブサイトの運営者が公式にサポートしているものではありません。当然著作権に引っかかるような情報を勝手に自分の利益のために公開したりとかしてはいけません。場合によっては訴訟問題に発展しているものもあるようです。スクレイピングできたからといって、権利等を無視して使えるわけではありません。あくまでデータ取得する手間であって、取得したデータの使い方は普通に手動で情報取得した場合と同じです。
今回はスクレイピングおよびクローリングという技術を紹介させていただきました。面白そうと思った人はぜひ実装してみてください。特に大量のデータをネットから拾ってこないといけない作業をしなければいけない人は覚えておくと便利です。
週間ゲーム売上ランキング 先週分(1/6~1/12) 脳トレブーム再来するか!?
2020年2週目の売上は年末商戦、正月商戦も終わりだいぶ落ち着いた売上となりました。1位は相変わらずポケモンでした。個人的に注目しているのは4位の脳トレです。まだ総販売数は9万本とそれほど多くはないですが、毎週コンスタントに売れており、DS時代の脳トレブームにどこまで近づけるのか注目です。
前週(2019/12/30~2020/1/5)の売上
https://koro-game-programming.hatenablog.com/entry/2020/01/16/090124
2019年ゲーム年間売上(2019/12/31~2019/12/29)
https://koro-game-programming.hatenablog.com/entry/2019/12/14/160934
2020年ゲーム年間売上(2019/12/30~)
https://koro-game-programming.hatenablog.com/entry/2020/01/09/112525
ハード売上(12/30~1/12の2週分のデータです)
Switch/25万2776台(累計 1059万824台)
Switch Lite/14万8352台(累計 119万3735台)
PS4 Pro/33771台(累計 142万8741台)
PS4/31832台(累計 738万5105台)
Xbox One X/160台(累計 18802台)
Xbox One S/85台(累計 92689台)
New 2DS LL/4791台(累計 169万4913台)
New 3DS LL/182台(累計 588万6097台)
ソフト売上
順位 |
ゲームタイトル |
今週の売上 |
累計売上 |
機種 |
消化率 |
販売元 |
1位 |
ポケットモンスター ソード・シールド |
71,695本 |
3,256,754本 |
Switch |
80% |
|
2位 |
リングフィット アドベンチャー |
21,498本 |
547,569本 |
Switch |
80% |
|
3位 |
15,845本 |
1,208,747本 |
Switch |
80% |
日本マイクロソフト |
|
4位 |
東北大学加齢医学研究所 川島隆太教授監修 脳を鍛える大人のNintendo Switchトレーニング |
15,757本 |
91,908本 |
Switch |
40% |
|
5位 |
14,129本 |
3,510,455本 |
Switch |
80% |
||
6位 |
14,100本 |
2,725,304本 |
Switch |
80% |
||
7位 |
11,639本 |
570,071本 |
Switch |
80% |
||
8位 |
スーパー マリオパーティ |
9,560本 |
1,311,173本 |
Switch |
80% |
|
9位 |
8,774本 |
248,507本 |
Switch |
80% |
||
10位 |
8,055本 |
3,288,270本 |
Switch |
80% |
||
11位 |
6,336本 |
834,218本 |
Switch |
80% |
||
12位 |
釣りスピリッツ Nintendo Switchバージョン |
5,233本 |
372,933本 |
Switch |
80% |
|
13位 |
5,103本 |
1,498,038本 |
Switch |
80% |
||
14位 |
New スーパーマリオブラザーズ U デラックス |
3,440本 |
765,470本 |
Switch |
80% |
|
15位 |
3,439本 |
3,439本 |
Switch |
20% |
||
16位 |
3,183本 |
474,855本 |
Switch |
80% |
||
17位 |
ディズニー ツムツム フェスティバル |
3,177本 |
145,659本 |
Switch |
80% |
|
18位 |
3,020本 |
2,060,611本 |
Switch |
80% |
||
19位 |
太鼓の達人 Nintendo Switchば〜じょん! |
2,889本 |
434,679本 |
Switch |
80% |
|
20位 |
十三機兵防衛圏 |
2,856本 |
53,352本 |
80% |
アトラス |
|
21位 |
コール オブ デューティ モダン・ウォーフェア |
2,622本 |
217,749本 |
80% |
||
22位 |
妖怪ウォッチ4++(ぷらぷら) |
2,550本 |
58,932本 |
Switch |
80% |
|
23位 |
牧場物語 再会のミネラルタウン |
2,490本 |
126,522本 |
Switch |
80% |
|
24位 |
無双OROCHI3 Ultimate |
2,439本 |
33,283本 |
60% |
||
25位 |
2,325本 |
220,028本 |
Switch |
80% |
||
26位 |
2,192本 |
1,692,923本 |
Switch |
80% |
||
27位 |
モンスターハンターワールド:アイスボーン マスターエディション |
2,170本 |
424,698本 |
80% |
||
28位 |
2,009本 |
258,314本 |
Switch |
80% |
||
29位 |
FIFA 20 Legacy Edition |
1,939本 |
52,081本 |
Switch |
80% |
|
30位 |
Minecraft: PlayStation 4 Edition |
1,911本 |
426,235本 |
80% |
週間ゲーム売上ランキング 先週分(2019/12/30~2020/1/5) ポケモン売上300万本突破!
2020年最初の1位は8週連続1位となったポケモンソードシールドであった。300万本を突破し、ダウンロードコンテンツも発表とまだまだ勢いがあります。個人的には今までのようにアップデート版のソフト(クリスタル、エメラルド、プラチナ、BW2、USUMのようなもの)はもう出さず、ダウンロードで要素を追加していくようにするのかどうかというところ。そのほか順位の変動はあったもののトップ10に入っているソフトは前週と全く変わらなかった。
前週(2019/12/23~12/29)の売上
https://koro-game-programming.hatenablog.com/entry/2020/01/08/224149
2019年ゲーム年間売上(2019/12/31~2019/12/29)
https://koro-game-programming.hatenablog.com/entry/2019/12/14/160934
2020年ゲーム年間売上(2019/12/30~)
https://koro-game-programming.hatenablog.com/entry/2020/01/09/112525
ハード売上(12/30~1/12の2週分のデータです)
Switch/25万2776台(累計 1059万824台)
Switch Lite/14万8352台(累計 119万3735台)
PS4 Pro/33771台(累計 142万8741台)
PS4/31832台(累計 738万5105台)
Xbox One X/160台(累計 18802台)
Xbox One S/85台(累計 92689台)
New 2DS LL/4791台(累計 169万4913台)
New 3DS LL/182台(累計 588万6097台)
ソフト売上
順位 |
ゲームタイトル |
今週の売上 |
累計売上 |
機種 |
消化率 |
販売元 |
1位 |
ポケットモンスター ソード・シールド |
196,925本 |
3,185,059本 |
Switch |
80% |
|
2位 |
52,434本 |
558,432本 |
Switch |
80% |
||
3位 |
52,195本 |
2,711,204本 |
Switch |
80% |
||
4位 |
46,963本 |
1,192,902本 |
Switch |
80% |
日本マイクロソフト |
|
5位 |
44,605本 |
239,733本 |
Switch |
80% |
||
6位 |
43,274本 |
3,496,326本 |
Switch |
80% |
||
7位 |
東北大学加齢医学研究所 川島隆太教授監修 脳を鍛える大人のNintendo Switchトレーニング |
41,455本 |
76,151本 |
Switch |
40% |
|
8位 |
スーパー マリオパーティ |
37,903本 |
1,301,613本 |
Switch |
80% |
|
9位 |
釣りスピリッツ Nintendo Switchバージョン |
30,705本 |
367,700本 |
Switch |
80% |
|
10位 |
リングフィット アドベンチャー |
30,432本 |
526,071本 |
Switch |
80% |
|
11位 |
27,455本 |
3,280,215本 |
Switch |
80% |
||
12位 |
27,378本 |
827,882本 |
Switch |
80% |
||
13位 |
ディズニー ツムツム フェスティバル |
16,984本 |
142,482本 |
Switch |
80% |
|
14位 |
New スーパーマリオブラザーズ U デラックス |
14,441本 |
762,030本 |
Switch |
80% |
|
15位 |
11,586本 |
1,492,935本 |
Switch |
80% |
||
16位 |
太鼓の達人 Nintendo Switchば〜じょん! |
11,208本 |
431,790本 |
Switch |
80% |
|
17位 |
10,045本 |
2,057,591本 |
Switch |
80% |
||
18位 |
妖怪ウォッチ4++(ぷらぷら) |
9,486本 |
56,382本 |
Switch |
80% |
|
19位 |
7,973本 |
471,672本 |
Switch |
80% |
||
20位 |
星のカービィ スターアライズ |
7,696本 |
791,570本 |
Switch |
80% |
|
21位 |
7,444本 |
217,703本 |
Switch |
80% |
||
22位 |
eFootball ウイニングイレブン 2020 |
6,394本 |
126,109本 |
80% |
||
23位 |
FIFA 20 Legacy Edition |
6,186本 |
50,142本 |
Switch |
80% |
|
24位 |
コール オブ デューティ モダン・ウォーフェア |
6,046本 |
215,127本 |
80% |
||
25位 |
牧場物語 再会のミネラルタウン |
5,950本 |
124,032本 |
Switch |
80% |
|
26位 |
Detroit: Become Human(Value Selection) |
5,948本 |
27,163本 |
80% |
||
27位 |
5,879本 |
87,370本 |
Switch |
80% |
||
28位 |
5,483本 |
166,771本 |
80% |
|||
29位 |
5,425本 |
1,690,731本 |
Switch |
80% |
||
30位 |
スーパーボンバーマン R スマイル プライス コレクション |
5,423本 |
67,645本 |
Switch |
80% |
週間ゲーム売上ランキング 先週分(2019/12/30~2020/1/12) ポケモン売上300万本突破!
2020年最初の1位は8週連続1位となったポケモンソードシールドであった。300万本を突破し、ダウンロードコンテンツも発表とまだまだ勢いがあります。個人的には今までのようにアップデート版のソフト(クリスタル、エメラルド、プラチナ、BW2、USUMのようなもの)はもう出さず、ダウンロードで要素を追加していくようにするのかどうかというところ。そのほか順位の変動はあったもののトップ10に入っているソフトは前週と全く変わらなかった。
ソフト売上ランキングが30位まで発表されたらまた更新したいと思います。
前週(12/23~12/29)の売上
https://koro-game-programming.hatenablog.com/entry/2020/01/08/224149
2019年ゲーム年間売上(2019/12/31~2019/12/29)
https://koro-game-programming.hatenablog.com/entry/2019/12/14/160934
2020年ゲーム年間売上(2019/12/30~)
https://koro-game-programming.hatenablog.com/entry/2020/01/09/112525
ハード売上
Switch/25万2776台(累計 1059万824台)
Switch Lite/14万8352台(累計 119万3735台)
PS4 Pro/33771台(累計 142万8741台)
PS4/31832台(累計 738万5105台)
Xbox One X/160台(累計 18802台)
Xbox One S/85台(累計 92689台)
New 2DS LL/4791台(累計 169万4913台)
New 3DS LL/182台(累計 588万6097台)
ソフト売上
1位(先週1位) Switch ポケットモンスター ソード・シールド
26万8620本(累計 325万6754本)/ポケモン/2019年11月15日発売
2位(先週5位) Switch マリオカート8 デラックス
66295本(累計 272万5304本)/任天堂/2017年4月28日発売
3位(先週2位) Switch ルイージマンション3
64073本(累計 57万71本)/任天堂/2019年10月31日発売
4位(先週4位) Switch Minecraft
62808本(累計 120万8747本)/日本マイクロソフト/2018年6月21日発売
5位(先週7位) Switch 大乱闘スマッシュブラザーズ SPECIAL
57403本(累計 351万455本)/任天堂/2018年12月7日発売
6位(先週8位) Switch 東北大学加齢医学研究所 川島隆太教授監修 脳を鍛える大人のNintendo Switchトレーニング
57212本(累計 91908本)/任天堂/2019年12月27日発売
7位(先週6位) Switch マリオ&ソニック AT 東京2020オリンピックTM
53379本(累計 24万8507本)/セガゲームス/2019年11月1日発売
8位(先週3位) Switch リングフィット アドベンチャー
51930本(累計 54万7569本)/任天堂/2019年10月18日発売
9位(先週9位) Switch スーパー マリオパーティ
47463本(累計 131万1173本)/任天堂/2018年10月5日発売
10位(先週10位) Switch 釣りスピリッツ Nintendo Switchバージョン
35938本(累計 37万2933本)/バンダイナムコエンターテインメント/2019年7月25日発売
【ブログ運営報告】開設1ヶ月目でのPV数と読者数と記事数 (1000pv達成&読者数100人達成&25記事執筆)
このブログでは普段ゲームに関しての記事やプログラミングに関しての記事を書いているのですが、今回はブログ開始1ヶ月(12/12~1/11)ということで、一ヶ月やってみての感想やPV数、読者数、記事数について書いていきたいと思います。
①PV数
ブログ開始1ヶ月目でのアクセス数(google analyticsのPV数は途中から測り始めたのではてなブログに初めからついているアクセス数を参考にしたいと思います)は合計約1240となりました。31日で約1240アクセスなので、平均すると1日40アクセスです。ちなみに12月は20日で約580アクセスなので平均1日29アクセス、1月は11日で約660アクセスなので平均1日60アクセスということで確実にアクセス数は増えてきています。100アクセス突破した日も3日出せました!といってもはてなブログの力を使うと一ヶ月目で10000PVとか行っている人もいるようなので全然ではあるのですが。でもそういう人って元々知名度があったり、ブログ自体は初めてではなかったりという人も多いですし、そんな人と比べる必要もないかなと思います。それよりも12月から1月で平均アクセス数が2倍に増えたことが成長を感じられて嬉しいです。毎月倍にしてったら3ヶ月後には月間10000PV!まあそんなうまくいくとも思いませんが、自分のペースで徐々にアクセス数を増やしていきたいです。
②記事数
1ヶ月で書けた記事は全部で25記事でした。といってもこの記事で25記事なので正確には24記事です。始めた当初は毎日1記事は書こうと思っていたのですが、忙しい日もあり毎日とはいきませんでした。ちなみに始めた当初はアクセス数が少なくて悲しかったので1日に3記事とか書いて無理やりアクセス数稼いだりもしてました笑。最近でも3日に1回は更新するようにしています。これからも長くブログをやっていけたらいいなと思います。
③読者数
1ヶ月で読者に登録してくれた方は102人でした。はてなブログのこんなブログもありますに掲載していただくことができるようになってから、一気に増えました。こんなブログもありますに掲載されるようになってから、こんなブログもありますに掲載される条件についてネットで調べてみたところ、継続している人が載りやすいとか色々書かれていましたが、運要素も強いらしいので、運が良かったっぽいです。このチャンスを生かしてどんどん大きなブログにしていきたいです。
④アクセス元
ブログを始めた当初のアクセス元
1位 Twitter 80%
2位 Google検索 10%
3位 はてなブログ 2%
といった感じでした。
1ヶ月の累計アクセス元
1位 Twitter 64%
2位 Google検索 20%
3位 はてなブログ 10%
という感じになりました。
順位は相変わらず1位 Twitter、2位Google検索、3位 はてなブログでしたが、その割合は一ヶ月で大きく変化しました。上の順位表ではそれほど大きく変わっていないように見えますが、このデータは累計なので実際に1日あたりのアクセス数に関して、ブログを始めた当初と現在を比べたらもっと大きな変化が見えると思います。
それではそれぞれのアクセス元に関して詳しくみていきたいと思います。
Twitterはブログを始めた時に同時に始めそこでブログの宣伝をしていました。ブログを始めた当初ではGoogle検索に表示されることも、はてなブログで宣伝されることもなかったので、自ら宣伝を行っていたTwitterからの流入が多かったのは当然かと思います。今でもTwitterからの流入は一定数あり、Twitterをフォローしていてブログを見てくださる方々には本当に感謝です。
次にGoogle検索からの流入に関してです。ブログを始めた当初は検索に引っかかることは滅多になくGoogle検索からのアクセスは1日に2とかでした。それが最近では少しずつ増えてきて一日20アクセスくらいはGoogle検索からくるようになりました。といってもまだ20アクセスだけですが。また適当に自分のブログが引っかかりそうなワードで検索をかけてみると2ページ目や3ページ目に自分の記事が表示されたりすることも出てきました。検索から来てくれる人が増えればブログのアクセス数等も安定すると思うので、早く1ページ目に表示されるようになりたいです。
最後にはてなブログからの流入に関してです。この流入がここ最近一番成長率はすごいです。というのも自分のブログが先ほども紹介したこんなブログもありますというはてなブログのコーナーに載るようになったのです。その結果結構多くの人がはてなブログ経由で見てくださるようになりました。最初から自分でブログを作るか、はてなブログで始めるか迷いましたが、こういう機能があるところははてなブログのいいところだと思います。まあ元々こんな機能があるなんてことは知らなかったですが。またはてなブログ経由で見てくださる方は当然はてなユーザーなので読者登録してくださる方も多く嬉しい限りです。
⑤アクセス先(よく読まれている記事)
アクセス先の順位は
1位 プログラミング勉強法(独学で初心者から中級者へ)
2位 ゲーム年間売上ランキング2019
3位 ブログトップ
となりました。
1位のプログラミング勉強法はTwitterから来てくださる方が他の記事に比べて圧倒的に多かったです。結構頑張って書いたので見てくださる方が意外といてよかったです。逆にGoogle検索から見られることはほぼありませんでした。この記事に限らずプログラミング系の記事はほとんど検索には引っかからないようでどうしたら良いのかと悩み中です。2位のゲーム年間売上ランキング2019はTwitterからとGoogle検索からのどちらからも一定数見てもらうことができました。またこの記事に限らずゲーム売上系の記事やその他のゲーム系の記事は毎回一定数Google検索から見てもらうことができています。この調子で検索からたくさん見てもらえるようにしたいです。Googleに認められるブログになるぞ!
プログラミング勉強法
https://koro-game-programming.hatenablog.com/entry/2020/01/03/150000
ゲーム年間売上ランキング2019
https://koro-game-programming.hatenablog.com/entry/2019/12/14/160934
⑥最初の一ヶ月で頑張ったこと
1.記事をなるべくたくさん書く
2.SNSで宣伝をする
3.どういう記事が読まれやすいか自分なりに分析した
⑦次の一ヶ月でやりたいこと
1.SEO対策などを学ぶ
2.はてなブログで可能な範囲でデザイン等をしっかり凝ったブログを作っていく
3. 数式などをブログで書く方法を学ぶ
まとめると初めて一ヶ月で
・アクセス数 1239
・読者数 102人
・記事数 25記事
でした。
ブログ知識0の凡人がブログを始めたら1ヶ月でこんなものです。ブログ始めたばかりの人で上を見て落ち込んでいる人たちも同じレベルの人もいるのかと思って安心してブログを続けていきましょう!僕より伸びが悪い人であっても、僕は運よくこんなブログもありますに掲載していただいて少し伸びただけなので、全然気にすることないです。何よりブログを楽しむことを大事にしていきたいです!
今回も長々と読んでくださりありがとうございました。これからも末長くブログをやっていきたいと思っているので、応援よろしくお願いします!
機種別・メーカー別 2019年ゲーム売上ランキング
2019年の年間ゲーム売上ランキングはこちらから
https://koro-game-programming.hatenablog.com/entry/2019/12/14/160934
2020年の年間ゲーム売上ランキングはこちらから
https://koro-game-programming.hatenablog.com/entry/2020/01/09/112525
・機種別売上
機種別で見ると1位のSwitch、2位のPS4でほぼ全てのシェアを獲得していました。昨年はまだ3DSとVitaでシェア10%位はあったのですが、ついに携帯ゲーム機市場が終わりを迎えました。
順位 |
機種 |
売上(本) |
シェア(%) |
1位 |
Switch |
14577051 |
67.18 |
2位 |
6848077 |
31.56 |
|
3位 |
171784 |
0.79 |
|
4位 |
Vita |
98075 |
0.45 |
5位 |
DS |
3762 |
0.02 |
・メーカー別売上
メーカー別で見るとシェア32%と任天堂が圧倒的でした。2位のポケモンも任天堂として含めたら驚異のシェア48%。その他のメーカーでは多数のキャラゲー等を出しているバンナムが3位、キングダムハーツ3等を発売したスクエニが4位、モンハン新作を出したカプコンが5位となりました。ただしこの表はダウンロード版の売上本数を含んでいないので、ダウンロード版を含めたらモンハンを出してるカプコンはもう少し順位を上げそうです。
順位 |
メーカー |
売上(本) |
シェア(%) |
1位 |
6913967 |
31.86 |
|
2位 |
3480624 |
16.04 |
|
3位 |
2035460 |
9.38 |
|
4位 |
1938379 |
8.93 |
|
5位 |
1246855 |
5.75 |
|
6位 |
788680 |
3.63 |
|
7位 |
682227 |
3.14 |
|
8位 |
日本マイクロソフト |
620894 |
2.86 |
9位 |
613760 |
2.83 |
|
10位 |
408039 |
1.88 |
|
11位 |
393161 |
1.81 |
|
12位 |
356150 |
1.64 |
|
13位 |
アトラス |
354624 |
1.63 |
14位 |
278648 |
1.28 |
|
15位 |
260223 |
1.2 |
|
16位 |
213674 |
0.98 |
|
17位 |
96646 |
0.45 |
|
18位 |
87189 |
0.4 |
|
19位 |
85842 |
0.4 |
|
20位 |
2K |
82850 |
0.38 |
21位 |
66373 |
0.31 |
|
22位 |
ロックスター・ゲームス |
61108 |
0.28 |
23位 |
フリュー |
49666 |
0.23 |
24位 |
H2 INTERACTIVE |
46828 |
0.22 |
25位 |
45077 |
0.21 |
|
26位 |
41089 |
0.19 |
|
27位 |
38419 |
0.18 |
|
28位 |
3goo |
37254 |
0.17 |
29位 |
35749 |
0.16 |
|
30位 |
PUBG Corporation |
31908 |
0.15 |
31位 |
27349 |
0.13 |
|
32位 |
Game Source Entertainment |
26265 |
0.12 |
33位 |
24895 |
0.11 |
|
34位 |
21338 |
0.1 |
|
35位 |
20105 |
0.09 |
|
36位 |
DMM GAMES |
19009 |
0.09 |
37位 |
Deep Silver |
17857 |
0.08 |
38位 |
16419 |
0.08 |
|
39位 |
プライベート ディビジョン |
16393 |
0.08 |
40位 |
13700 |
0.06 |
|
41位 |
13052 |
0.06 |
|
42位 |
UNTIES |
12220 |
0.06 |
43位 |
9288 |
0.04 |
|
44位 |
MAGES. |
8483 |
0.04 |
45位 |
8410 |
0.04 |
|
46位 |
7934 |
0.04 |
|
47位 |
7717 |
0.04 |
|
48位 |
El Dia |
6337 |
0.03 |
49位 |
オーイズミ・アミュージオ |
5274 |
0.02 |
50位 |
PLAYISM |
4490 |
0.02 |
51位 |
3538 |
0.02 |
|
52位 |
NAパブリッシング |
2341 |
0.01 |
53位 |
エクスペリエンス |
2308 |
0.01 |
54位 |
2148 |
0.01 |
|
55位 |
ディースリー・ パブリッシャー |
1977 |
0.01 |
56位 |
プロトタイプ |
1854 |
0.01 |
57位 |
Matatabi |
1848 |
0.01 |
58位 |
マスティフ |
1760 |
0.01 |
59位 |
フライハイワークス |
1587 |
0.01 |
60位 |
1490 |
0.01 |
自作関数シリーズ第2回 sin関数 (C言語、Java、Python、Ruby)
このシリーズは普段ライブラリを利用して求めているような計算を自作するとしたらどのようなコードになるのかを紹介するシリーズです。といってもOpenCVやBeautiful Soupのような大規模なライブラリの関数を自作するわけではありません。大規模なライブラリは眺めてこんな感じ何だなって理解するに留めて、素直に作ってくれた人に感謝して利用しましょう。さて第2回ではsinを求める関数を自作したいと思います。ちなみに普通にsinを求めるには
C言語: include<math.h>をしてからsin関数を使う
Java: Mathクラスのsinメソッドを使う
Python: import mathをしてsin関数を使う
Ruby: Math.sinを使う
自作関数シリーズ第1回(ルートを求める関数)
https://koro-game-programming.hatenablog.com/entry/2019/12/31/205914
さて、ます今回sinを求めるにあたって使う数学的な知識から入ります。今回sinを求めるのにはマクローリン展開という方法を使います。
これは下のような式で表される展開です。大学で理系の方なら少なくとも一度は聞いたことあると思います。
そしてf(x) = sin(x)として上の式に代入した結果が下のようになります。
この式を元に実際にsinを求めるプログラムを書いてみると下のようになります。ちなみにコンピューターに無限回計算させるわけにもいかないので、今回はxの19乗の項までの近似計算としています(この程度のループでもかなり良い精度となる)。ちなみに今回は変数sumを第n項までの合計を保存するための変数、tを各項を求める変数としています。そしてまずtとsumにxを代入、次にtに
-(x*x)/( (i*2)*(i*2+1) )をかけることで-x^3/3!を求め、それをsumに加えます。さらにこの操作を第10項目まで繰り返しています。
C言語版
double my_sin(double x){
double sum = x;
double t = x;
int i;
for(i=1;i<10;i++){
t *= -(x*x)/( (i*2)*(i*2+1) );
sum += t;
}
return sum;
}
Java版
public static double my_sin(double x){
double sum = x;
double t = x;
for(int i=1;i<10;i++){
t *= -(x*x)/( (i*2)*(i*2+1) );
sum += t;
}
return sum;
}
def my_sin(x):
sum = x
t = x
for i in range(1,10):
t *= -(x*x)/( (i*2)*(i*2+1) )
sum += t
return sum
Ruby版
def my_sin(x)
sum = x
t = x
for i in 1..10 do
t *= -(x*x)/( (i.to_f*2)*(i.to_f*2+1) )
sum += t
end
return sum
end
ちなみにマクローリン展開を使うことでcos,tan,log(1-x),exp(x)なども近似的に簡単に求めることができるので気になったら作ってみてください。