前言
在日常生活或者工作中,我们常常需要在 Craigslist 网站上寻找二手商品或者租房信息。然而,Craigslist 的网页界面不是十分友好,也不提供高级筛选或者数据挖掘功能。因此,本文介绍了一个 npm 包 craigslist-srch,它可以帮助我们通过编程方式查询和筛选 Craigslist 上的信息。在本文中,我们将详细介绍这个 npm 包的使用方法和技术细节。
craigslist-srch 概述
craigslist-srch 是一个使用 JavaScript 编写的 npm 包,它提供了一个查询 Craigslist 网站的 API 和一个命令行工具。使用 craigslist-srch,我们可以方便地在 Craigslist 上查找并过滤出我们所需要的信息。
安装
想在你的项目中使用 craigslist-srch,你可以使用 npm 进行安装,在终端中运行
npm install craigslist-srch
示例
下面我们通过一个实际的代码示例,来详细介绍如何在你的项目中使用 craigslist-srch。
-- -------------------- ---- ------- ----- ---------- - --------------------------- -- --- ---------- -- ----- -------- - ---------- ----- -------- - - --------- ------------ ------------ ------ -- ----- ------- - - -------- ---- -- -------------------- -------- ------------------- ------------- -- - -- --------- ----- ------------- - ------------------- -- - ------ ---------- - --- -- ---------------------------------- --- --------------------------- -- ----------------------
代码分为以下几步:
引入 craigslist-srch 模块
连接到 Craigslist 网站,传入三个参数。第一个参数指定城市名称,第二个参数指定要查询物品的类别,第三个参数包含更多选项。
调用 getItems 方法,开始查询。
在 Promise 的回调函数中处理查询结果,并对其进行过滤。
将过滤后的结果输出到控制台中。
craigslist-srch 方法
构造函数
要使用 craigslist-srch,首先我们需要创建一个 craigslist 对象并连接到 Craigslist 网站。craigslist 的构造函数接受两个参数:网站的城市名称和可选的选项。例如:
const cityName = "seattle"; const options = { verbose: true }; const cl = craigslist(cityName, options);
可以在 Craigslist cities 页面查找其他支持的城市。
选项可以设置
baseUrl
: craigslist 网站的基本 URL,https://www.craigslist.org
是默认值。category
: craigslist 网站的类别(详见下文)。crawler
: 直接传递给爬虫got()
或needle()
的选项。defaultRssUrl
: craigslist rss 访问地址,https://www.craigslist.org/about/rss
是默认值。geocoder
: craigslist-srch 使用geocoder
模块解析城市的坐标。你可以传递一个实现了geocoder
API 的类(默认为require('@mapquest/geocoder-nodejs')('Fmjtd%7Cluu821u2n9%2C22%3Do5-9aw5u')
的实例)。location
: craigslist 网站的特定位置。maxAsk
: 对于公寓和房间出租,最多价格。minAsk
: 对于公寓和房间出租,最少价格。parser
: 确定如何解析 HTML。默认情况下,使用cheerio
模块。request
: craigslist-srch 使用request
模块发出 http 请求。你可以传递一个实现了request
API 的类(默认为require('request')
的实例)。verbose
: 如果该选项为真,craigslist-srch 将在终端中打印出控制台日志。
getItems
getItems 方法是 craigslist-srch 中最常用的方法之一,它可以从 Craigslist 网站获取物品列表,可以传入包含以下字段的对象:
category
: craigslist 网站的类别和子类别。query
: 要搜索的文本查询字符串。offset
: 结果列表的偏移量(分页用)。maxAsk
: 对于公寓和房间出租,最多价格。minAsk
: 对于公寓和房间出租,最少价格。
示例:
const location = "Seattle"; const category = { category: "furniture", subcategory: "desk" }; const cl = craigslist(location); cl.getItems(category).then(console.log).catch(console.error);
getHousing
getHousing 方法可以在 craigslist 网站上获取房屋地产信息,可以传入包含以下字段的对象:
minAsk
: 最少需要支付多少租金。maxAsk
: 最多需要支付多少租金。bedrooms
: 卧室的数量。bathrooms
: 洗手间的数量。ft2
: 租用面积的大小。privateRoom
: 搜寻一间私人房间。privateBath
: 搜寻拥有独立洗手间的公寓。catsOk
: 珂以养猫。dogsOk
: 珂以养狗。
示例:
const location = "Seattle"; const options = { minAsk: 1500, maxAsk: 3000, bedrooms: 2 }; const cl = craigslist(location); cl.getHousing(options).then(console.log).catch(console.error);
你可以在 Craigslist categories 页面查找其他的类别和子类别。
结论
本文介绍了一个 npm 包 craigslist-srch,它可以帮助我们通过编程方式查询和筛选 Craigslist 上的信息。本文针对 craigslist-srch 的使用方法和技术细节作了详细说明,希望对需要在 Craigslist 上查询信息的人员有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562f681e8991b448e0c06