New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

20131211 やりたいことリスト #463

Closed
Torokun opened this Issue Dec 11, 2013 · 12 comments

Comments

Projects
None yet
2 participants
@Torokun
Member

Torokun commented Dec 11, 2013

2013/12/11 に[やりたい/やった]こと

  • 定時ダッシュ
  • オープンセミナー2014@広島 に申し込む
  • オープンセミナー2014@広島の懇親会 に申し込む
  • オープンセミナー2014@広島の懇親会のLTに申し込む
  • オーム社eStoreの創立100周年記念セール 何か買う。 #464 からパクった
  • node.jsでのスクレイピングの方法を調べる

@ghost ghost assigned Torokun Dec 11, 2013

@Torokun

This comment has been minimized.

Show comment
Hide comment
@Torokun

Torokun Dec 11, 2013

Member

定時ダッシュに失敗

Member

Torokun commented Dec 11, 2013

定時ダッシュに失敗

@Torokun

This comment has been minimized.

Show comment
Hide comment
@Torokun

This comment has been minimized.

Show comment
Hide comment
@Torokun

This comment has been minimized.

Show comment
Hide comment
@Torokun

Torokun Dec 11, 2013

Member

cheeroを使ってみる

cheeroをインストール

$ npm install cheerio -g

試しに作ったプログラム(scraping.js)

(function() {
    var _http = require('http');
    var _cheerio = require("cheerio");  // スクレイピングするためにHTMLをjQueryのように使えるモジュール
    var _URL = 'http://106n.net/toro/blog/?p=1141'; // 取得するWebページ

    // Webページを取得
    _http.get(_URL, function(res){
        var _statusCode = res.statusCode;
        console.log(_statusCode)
        if(_statusCode != 200) {
            // 200ではない場合は失敗
            return;
        }
        var _resData = '';
        res.on('data', function (chunk) {
            _resData += chunk;
        });
        res.on('end', function () {
            console.log('Get Data Finish!')
            parseResponseData(_resData);
        });
    }).on('error', function(e) {
        cosole.log('Error!')
    });

    function parseResponseData(resData) {
        var _ret = {};
        // ページデータを読み込む
        var $ = _cheerio.load(resData);
        // <head>を取り出す
        var _$head = $('head');
        if(_$head.length < 1) {
            console.log('Error: not found head tag.');
            return _ret;
        }
        // <head>の中の<title>を取り出す
        var _$title = _$head.find('title');
        if(_$title.length == 1) {
            var _title = _$title.text();    // これが取りたいデータ
            console.log('title : "' + _title + '"');
            _ret.title = _title;
        }
        return _ret;
    };
})();

実行

$ node scraping.js 
200
Get Data Finish!
title : "  node.jsのテスティングフレームワークであるjasmine-nodeをインストールして使ってみる — Toroとトロは電子機械の夢を見るか"
Member

Torokun commented Dec 11, 2013

cheeroを使ってみる

cheeroをインストール

$ npm install cheerio -g

試しに作ったプログラム(scraping.js)

(function() {
    var _http = require('http');
    var _cheerio = require("cheerio");  // スクレイピングするためにHTMLをjQueryのように使えるモジュール
    var _URL = 'http://106n.net/toro/blog/?p=1141'; // 取得するWebページ

    // Webページを取得
    _http.get(_URL, function(res){
        var _statusCode = res.statusCode;
        console.log(_statusCode)
        if(_statusCode != 200) {
            // 200ではない場合は失敗
            return;
        }
        var _resData = '';
        res.on('data', function (chunk) {
            _resData += chunk;
        });
        res.on('end', function () {
            console.log('Get Data Finish!')
            parseResponseData(_resData);
        });
    }).on('error', function(e) {
        cosole.log('Error!')
    });

    function parseResponseData(resData) {
        var _ret = {};
        // ページデータを読み込む
        var $ = _cheerio.load(resData);
        // <head>を取り出す
        var _$head = $('head');
        if(_$head.length < 1) {
            console.log('Error: not found head tag.');
            return _ret;
        }
        // <head>の中の<title>を取り出す
        var _$title = _$head.find('title');
        if(_$title.length == 1) {
            var _title = _$title.text();    // これが取りたいデータ
            console.log('title : "' + _title + '"');
            _ret.title = _title;
        }
        return _ret;
    };
})();

実行

$ node scraping.js 
200
Get Data Finish!
title : "  node.jsのテスティングフレームワークであるjasmine-nodeをインストールして使ってみる — Toroとトロは電子機械の夢を見るか"
@Torokun

This comment has been minimized.

Show comment
Hide comment
@Torokun

Torokun Dec 11, 2013

Member

オーム社 eStoreから

  • 情熱プログラマー ソフトウェア開発者の幸せな生き方
  • ソフトウェアの世界でキャリアを築く Making it Big in Software

を買った。

Member

Torokun commented Dec 11, 2013

オーム社 eStoreから

  • 情熱プログラマー ソフトウェア開発者の幸せな生き方
  • ソフトウェアの世界でキャリアを築く Making it Big in Software

を買った。

@eiel

This comment has been minimized.

Show comment
Hide comment
@eiel

eiel Dec 11, 2013

Member

$('title')を最初からとりいったらダメなん?

Member

eiel commented Dec 11, 2013

$('title')を最初からとりいったらダメなん?

@Torokun

This comment has been minimized.

Show comment
Hide comment
@Torokun

Torokun Dec 12, 2013

Member

@eiel

$('title')を最初からとりいったらダメなん?

<head>の中の<title>を取りたいんですよ。
お行儀の悪いHTMLは排除なのです!

Member

Torokun commented Dec 12, 2013

@eiel

$('title')を最初からとりいったらダメなん?

<head>の中の<title>を取りたいんですよ。
お行儀の悪いHTMLは排除なのです!

@eiel

This comment has been minimized.

Show comment
Hide comment
@eiel

eiel Dec 12, 2013

Member
の中の<title>を取りたいんですよ。 お行儀の悪いHTMLは排除なのです!

なら $('head > title') でよさそうな感。

Member

eiel commented Dec 12, 2013

の中の<title>を取りたいんですよ。 お行儀の悪いHTMLは排除なのです!

なら $('head > title') でよさそうな感。

@Torokun

This comment has been minimized.

Show comment
Hide comment
@Torokun

Torokun Dec 12, 2013

Member

<head>の中に他にも取りたいデータがあるときが生じたときに_$headを再利用したいので。
仮に1回で取るなら $('head title') かなぁ。

Member

Torokun commented Dec 12, 2013

<head>の中に他にも取りたいデータがあるときが生じたときに_$headを再利用したいので。
仮に1回で取るなら $('head title') かなぁ。

@Torokun

This comment has been minimized.

Show comment
Hide comment
@Torokun

Torokun Dec 28, 2013

Member

マージされたのでクローズ

Member

Torokun commented Dec 28, 2013

マージされたのでクローズ

@Torokun Torokun closed this Dec 28, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment