Sphereとともに

scalaとかplayframeworkとか。技術ブログにしたいなと。環境は Windows7x64, mac です。たまに声優さん情報が混ざります。最近ちょっとClojure触りました。

nightmare.js を使って Qiita の人気の投稿 の href一覧 を取得する

nightmare.js

github.com

一覧を取得する

サンプルをちょっと変えて

.evaluate(function () {
    return document.querySelector('#main .searchCenterMiddle li a').href
  })

querySelectorquerySelectorAll に変えてやればOKでしょとか思ったのになぜか return が null になって困った・・・

javascriptはあまり良くわからないし・・・

.evaluate(function () {
    return document.querySelectorAll('.popularItem_articleTitle_text').href
  })

ぐぐってみると以下の記事がヒットしたので少し書き直してみたらうまく行った

qiita.com

  .evaluate(function(){
      return Array.from(document.querySelectorAll(".popularItem_articleTitle_text"),  e => {return e.href;})
    })

コード

var Nightmare = require('nightmare');
var nightmare = Nightmare({ show: true })

var qiita_popular_item = 'http://qiita.com/popular-items';

nightmare
  .goto(qiita_popular_item)
  .evaluate(function(){
      return Array.from(document.querySelectorAll(".popularItem_articleTitle_text"),  e => {return e.href;})
    })
  .end()
  .then(function (result) {
    console.log('result', result)
  })
  .catch(function (error) {
    console.error('Search failed:', error);
  });

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発