yukiyukiponsuの日記

雑記ブログ

質問はCONTACTやコメントでお願い致します。

【コピペで出来るnode.js】youtubeでキングヌーの白日を自動で再生してみた

この記事をシェアする

f:id:yukiyukiponsu:20190410154007j:plain

 

こんにちは、ゆきぽんずです。

 

「キングヌー」を「キングガン」と間違えて、友達に笑われたことを一生根に持っている心の狭い人間ことゆきぽんずです。

 

そんな因縁のキングヌーですが「白日」という曲が本当に素晴らしく毎日聴いています。いつもはスマホyoutubeで聴いているのですが、毎回youtubeを開いて動画を探し、クリックして再生するのがめんどくさくなり、何とか自動化できないかなーと考え、今回はnode.jsを使って実現しようと思いました。

 

要はwebスクレイピングをするのですが、pythonではなくnode.jsを選んだ理由としては、pythonばかり触りすぎて頭が「pythoner」になっていたので、他の言語で実装してみたろと考えた結果であります。

 

こんな感じのことが出来るようになります。

*起動~再生まで時間がかかるので見やすいように編集して表示しています。

完成品

完成品

 

作りたくなってきたでしょう?( *´艸`)

環境

PC : windows

 

node.jsが既に入っているものとして話を進めていきます。

node.jsをこれから入れる人であれば、このサイトを参考にすればできると思います。(自分も参考にしました)macは知らん

Windows版 Node.js環境構築方法まとめ

 

node.jsでwebスクレイピングをするときは、puppeteer(ぱぺったー?)がオススメです。なんとですね。node.jsが入っている人であれば

puppeteerのインストール方法

npm install puppeteer

これだけでインストールできます(*このインストールめっちゃ重いんで気をつけてください : ちなみに筆者は40分かかりました( ;∀;))。

 

おおっと、その前に今回作成するプログラムをこんな感じで一つのフォルダにまとめてくださいね。

フォルダの位置関係

package-lock.json, package.json, node_modulesは

npm initのインストール方法

npm init

コマンドプロンプトであげると生成されます。(実行するファイルがあるフォルダをカレントディレクトリにした後にnpm initをしてあげてください)

下のような感じ

カレントディレクトリ

それではお待ちかねのソースコードですわいな

ソースコード

 blogscraping.js

 //dockerを使ったpuppeteerを使う
 //webを自動スクレイピングするために使うモジュール
const puppeteer = require('puppeteer');
(async () => {
  //ブラウザを立ち上げる
  const browser = await puppeteer.launch({
    headless:false,
  });
  const page = await browser.newPage();
  //ブラウザの大きさを指定
  await page.setViewport({width: 1600, height: 950});
  //行きたいサイトのurlを指定して飛ぶ
  await page.goto('https://www.youtube.com/?gl=JP&hl=ja');
  //検索欄にキングヌー 白日と入力
  await page.type("#search", "キングヌー 白日");
  //Enterキーをクリック
  await page.keyboard.press("Enter");
  //画面遷移を明示的に1秒待つ
  await page.waitFor(1000)
  //広告を除いて1番目に自分が一番欲しい検索結果が来るはずなのでそのままクリック
  await page.waitForSelector('a[href^="/watch?v="]');
  await page.click('a[href^="/watch?v="]');
})();

たったこれだけで可能なんだわいな。プログラムはコメント文を細かく書いているので理解できると思います。ただ、そのほかにここ何でこうなるんだろうと思った時は、自分でググるなり、私に質問してください。

 

これを

プログラムの実行方法

node blogscraping.js

で実行してあげると完成品と同じような動作をするものが作れます!ほんと便利な時代になりましたよね。

 一応実行方法例をのせます。

プログラム実行方法

 

以上が今日の内容です。

 

ちょっと寄りみち

 

今ってエンジニアの需要が凄いらしく需要過多みたいですね。自分の周りにはエンジニアしかいないのでわからないのですが、今のうちにプログラミングを習っておいた方がいいのかもしれません。

 

以下の記事は日本経済新聞経済産業省の発表をまとめてくれたものになります。

要約すると、人工知能(AI)やあらゆるモノがネットにつながる「IoT」など先端的なIT(情報技術)を担う人材が2030年に55万人不足する恐れがあるということです。

https://www.nikkei.com/article/DGXMZO44101430T20C19A4MM8000/

 

この記事からわかるように早めにプログラミングを習っておいた方がいいと思います。今までプログラミングをやってなかったかたも挑戦してみることをオススメします。

 

プログラミングスクールにいくなら絶対、株式会社divの教材をオススメします。

株式会社divの社長である「まこなり社長」はYouTubeで情報発信をしていて、とても有益な情報を無料で提供してくれています。

オススメの動画


【危険】実は頭が悪くなる行動 TOP3

 

参加費無料で完全マンツーマンの無料カウンセリングしてくれるみたいなので、まぁ試しにポチるのも悪くないのかなと。

 

ポチるかポチらないのかはおまかせします。一応以下にリンクは貼っておきます。興味のある方はどうぞ。