npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

rent-crawler

v1.0.2

Published

A crawler crawling rental information, based Nodejs

Downloads

6

Readme

rent-crawler

A crawler crawling rental information, based Nodejs

一个基于Nodejs,摘取租房信息的爬虫

功能 Features:

  • Get rental information about keywords
  • 得到有关查询地点的租房信息

开始 Get started

安装 How to install

$ npm install rent-crawler

win全局要加-g

下载并启动mongodb

mongodb: 下载

启动方法自行查阅

用法 Usage

$ zufang [query]

eg:

$ zufang 鼓楼区

BTW

默认爬取的是豆瓣的福州租房小组列表。如要改动,请将 crawler.js 中的 fetchSingleDoubanList 的链接更改

More 更多

  • 利用HTTP库 Axios 在 Nodejs 中发起get请求,获取页面数据。res.data存储着网页的 html 内容
  • 使用 cheerio 解决拉去页面之后解析环境的问题,可以理解成一个 Node.js 版的 jQuery,用来从网页中以 CSS selector 方式选取数据。 将 res.data 传给 cheerio.load,实现 jQuery 接口的变量,习惯性地将它命名为 $
  • 数据库基于 Mongodb ,并使用 mongoose 来操作

About 相关知识

mongoDB是什么

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为web应用提供可扩展的高性能数据存储解决方案。 他的特点:高性能、易部署、易使用,存储数据非常方便。

安装

brew install mongodb

启动服务端

$ mongod --config /usr/local/etc/mongod.conf

客户端使用

使用MongoDB,首先需要连接到MongoDB service:

$ mongo
> use yourdbname

更多命令

> db.dbname.find()

mongoose

直接使用mongodb模块虽然强大而灵活,但有些繁琐。

mongoose构建在mongodb之上,提供了Schema、Model和Document对象,用起来更为方便。

我们可以用Schema对象定义文档的结构(类似表结构),可以定义字段和类型、唯一性、索引和验证。Model对象表示集合中的所有文档。Document对象作为集合中的单个文档的表示。mongoose还有Query和Aggregate对象,Query实现查询,Aggregate实现聚合。

$ npm install mongoose --save

这个命令会安装mongoose并将其作为项目的依赖,而mongoose依赖的MongoDB driver以及regexp等等模块也会被自动安装。

指南

mongoose 中任何任何事物都是从 Schema 开始的。每一个 Schema 对应 MongoDB 中的一个集合(collection)。Schema 中定义了集合中文档(document)的样式。

第一步,定义schema

用mongoose的第一件事情就应该是定义schema. schema是什么呢? 它类似于关系数据库的表结构.

var mongoose = require('mongoose');
var schema = mongoose.Schema;
 
var blogSchema = new Schema({
    titile: String,
    body: String,
    comments: [{body: String, date: Date}],
    date: {type: Date, default: Date.now},
    hidden:Boolen
});

第二步,创建model

格式是mongoose.model(modelName, schema);

var BlogModel = mongoose.model('Blog', blogSchema);

一个示例

// 首先引入 mongoose 这个模块
var mongoose = require('mongoose');
// 然后连接对应的数据库:mongodb://localhost/test
// 其中,前面那个 mongodb 是 protocol scheme 的名称;localhost 是 mongod 所在的地址;
// 端口号省略则默认连接 27017;test 是数据库的名称
// mongodb 中不需要建立数据库,当你需要连接的数据库不存在时,会自动创建一个出来。

mongoose.connect('mongodb://localhost/test');

// 推荐在同一个 collection 中使用固定的数据形式。

var Cat = mongoose.model('Cat', {
  name: String,
  friends: [String],
  age: Number,
});

// new 一个新对象,名叫 kitty
// 接着为 kitty 的属性们赋值

var kitty = new Cat({ name: 'Zildjian', friends: ['tom', 'jerry']});
kitty.age = 3;

// 调用 .save 方法后,mongoose 会去你的 mongodb 中的 test 数据库里,存入一条记录。

kitty.save(function (err) {
  if (err) // ...
  console.log('meow');
});

我们可以验证一下

$ mongo
MongoDB shell version: 2.6.4
connecting to: test
> show dbs
> use test
> show collections
> db.cats.find()