3
1

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.

node.js+selenium環境でjqueryを使ってスクレイピングする方法

Last updated at Posted at 2019-07-18

node.js+selenium環境でjqueryを使ってスクレイピングする方法

node.js+selenium環境でjqueryを使ってスクレイピングしたい!!そんなときはこんな風にするとうまくいきました。

  1. selenium側でjqueryを使ってスクレピング
  2. スクレイピングした結果のデータを配列にしてJSON形式にしてサーバに渡す。
  3. サーバ側でJSONパースしてオブジェクトにする。
  4. サーバー側で受け取ったJSONデータをdata.jsonというファイルに保存する
  var webdriver = require('selenium-webdriver');

  var driver = new webdriver.Builder()
    .forBrowser('chrome')
    .build();

  driver.get('http://hogehoge.com/');
  driver.executeScript("return JSON.stringify($('.entry-title').map(function(){return $(this).text().trim();}).get());").then(function (return_value) {
    let json = JSON.parse(return_value);
    for (var key in json) {
      let val = json[key];
      fs.writeFile(path.join(__dirname, "data.json"), JSON.stringify(json), function (err) {
        if (err) {
          return console.log(err);
        }
      });
    }

※URL「 http://hogehoge.com/ 」と、jQueryのセレクタ「 .entry-title 」部分をお好きに書き換えてください。

これでjQueryのセレクタにマッチしたデータをJSONファイルに保存することができます:smile:
seleniumのお作法を学ぶより使い慣れたjQueryを使いたい!!という人には有用な方法と思います。

エンジニアに役立つ情報をTwitterでも発信していますので宜しければTwitterの方もフォローをよろしくお願いします!
Twitterへのリンクはコチラ

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?