エロサイトの作り方

2013年11月から勉強しながらエロサイトを作っています。

Node.jsでスクレイピングをする際にcheerioはお勧めできない

cheerio

こんなのを

<!DOCTYPE html>
  <head>
    <meta charset="UTF-8">
    <title>つらぽよ(>_<)...</title>
    <script>
    <!--
    console.log('(;_;)');
    // -->
    </script>
  </head>
  <body>
    こんにちは(^^)/
  </body>
</html>

こうすると

var fs = require('fs');
var cheerio = require('cheerio');

var html = fs.readFileSync('test.html', 'utf8');
var $ = cheerio.load(html);

console.log('cheerio:', $('title').text());

こうなる

cheerio: つらぽよ(>_

    <!--
    console.log('(;_;)');
    // -->

スクリプト内まで引っ張ってきおる。

jsdom + jQuery

こうすると

var env = require('jsdom').env;
var jquery = require('jquery');

var html = fs.readFileSync('test.html', 'utf8');
env(html, function (error, window) {
  if (!error) {
    var $ = jquery(window);
    console.log('jquery:', $('title').text());
  }
});

こうなる

jquery: つらぽよ(>_

正しくはないけど、内臓が露出しない。

ちなみに、ブラウザだと

こうすると

$('title').text()

こうなる

"つらぽよ(>_<)..."

ちゃんと取れる(かしこい!