7
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JavaScriptで要ログインサイトのデータ収集サービスを作ってみる(part1)

Last updated at Posted at 2018-01-12

全くのJavaScript初心者から学習してきた流れとか、方法とか色々書きます。

作りたい物

ログインが必要なサイトからデータを集めるサービス。

要は、某アーケード音ゲーのスコアツールを作ってみたいということです。
(他スコアツールを参考にしながら作っています。)

やること

  • ログイン状態で、任意のJavaScriptを実行→part1でやります
  • JavaScriptで欲しいデータのあるHTMLの収集・スコアの抽出→part2以降で
  • 抽出したスコアを何かしらの形式で出力しDL→part2以降で

任意のJavaScriptを実行する方法

とりあえずHTMLのヘッダに処理を書けば、そのページでJavaScriptが動くとのこと。
ということで、ヘッダ内にJavaScriptを追加・リンク先のソースファイルを参照し、データ取得処理を動かすことにします。

ヘッダへのJavaScriptの追加

「ブックレット」と言うものを利用します。ブックマークみたいなもので、実行するとJavaScriptが動く、みたいな感じのもの?らしいです。(ほとんど他スコアツールの流用)
書き方は以下の感じで。JavaScriptを書くので、先頭に「javascript:」と書いて後は処理する感じで。(実際は1行にします)

scoretoolBookret.js
javascript:(function(d,s){
  s=d.createElement('script');   // エレメント作成
  s.type='text/javascript';      // 属性追加
  s.src='sourceURL';             // 実行するソースのURL
  d.head.appendChild(s);         // ヘッダにエレメント追加
})(document);

単純にURL先のJavaScriptを実行してもらうようにする処理です。
ただし、実行するソースURLですが、データを取得したいサイトがhttpsならば、実行ソースの配置場所もhttpsじゃないとだめらしいです。(引っかかりました)

データ抽出

昔Pythonでスクレイピングやっていたので、Pythonでやりたいなとか思ってましたが、JavaScriptでも意外と簡単にできましたのでそちらでやっていきます。
(プロトタイプはpythonで作ってた)

続きはPart2で

7
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?