New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

cheerio-httpcli

Package Overview
Dependencies
Maintainers
1
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cheerio-httpcli

html client module with cheerio & iconv

  • 0.1.2
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
578
increased by5.28%
Maintainers
1
Weekly downloads
 
Created
Source

cheerio-httpcli

iconvによる文字コード変換とcheerioによるHTMLパースを組み込んだNode.js用HTTPクライアントモジュール

Node.jsでWEBページのスクレイピングを行う際に必要となる文字コードの変換とHTMLのパースを行った後のオブジェクトを取得できるHTTPクライアントモジュールです。

WEBページの取得にはrequest、文字コードの変換にはiconv、HTMLのパースにはcheerioを使用しています。

cheerioはHTMLをjQueryライクにパースしてくれるモジュールです。パース後のオブジェクトを格納する変数名を「$」にすると、$('title').text()のようなjQueryそのままの形で要素の情報を取得できます。

インストール

npm install cheerio-httpcli

メソッド

fetch(url[, get-param], callback)

urlで指定したWEBページをGETメソッドで取得し、文字コードの変換とHTMLパースを行いcallbackに返します。

callbackには以下の3つの引数が渡されます。

  • Errorオブジェクト
  • cheerio.load()でHTMLコンテンツをパースしたオブジェクト
  • requestモジュールのresponseオブジェクト

GET時にパラメータを付加する場合は、get-paramに連想配列で指定します。

サンプル
var client = require('cheerio-httpcli');

// Googleで「node.js」について検索する。
client.fetch('http://www.google.com/search', { q: 'node.js' }, function (err, $, res) {
  // レスポンスヘッダを参照
  console.log(res.headers);

  // HTMLタイトルを表示
  console.log($('title').text());

  // リンク一覧を表示
  $('a').each(function (idx) {
    console.log($(this).attr('href'));
  });
});

同梱の「example.js」はGoogle検索結果の一覧を取得するサンプルです。参考にしてください。

プロパティ

headers

requestモジュールで使用するリクエストヘッダ情報の連想配列です。デフォルトではUser-AgentのみIE9の情報を指定しています。

timeout

requestモジュールで指定するタイムアウト情報です。デフォルトでは30秒となっています。

gzip

サーバーとの通信にgzip転送を使用するかどうかを真偽値で指定します。デフォルトはtrue(gzip転送する)です。

その他

  • 文字コードの判別は<head>タグのcharset情報を参照しています。charsetで指定された文字コードとWEBページの実際の文字コードが異なる場合は変換エラーとなります。
  • iconv-jpがインストールされていればそちらを優先して使用します。

Changelog

0.1.2 (2013-09-06)

  • リクエストヘッダのHostを自動でセットするようにした
  • gzip転送オプション追加
  • fetch()のcallbackの第3引数にrequestモジュールのresponseオブジェクトを追加
  • HTTPステータスコードが200以外によるエラーでもコンテンツを取得するようにした

0.1.1 (2013-04-11)

  • charset=xxxというようにダブル(or シングル)クォーテーションがない場合に文字コードの判定に失敗するケースを修正

0.1.0 (2013-03-18)

  • 初版リリース

ライセンス

MIT licenseで配布します。

© 2013 ktty1220

Keywords

FAQs

Package last updated on 05 Sep 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc