temme 是一个类 jQuery 的选择器,用于简洁优雅地从 HTML 文档中提取所需的 JSON 数据。
<!-- 下面用到的 html 的内容 -->
<ul>
<li data-fruit-id="1">
<span data-color="red">apple</span>
</li>
<li data-fruit-id="2">
<span data-color="white">pear</span>
</li>
<li data-fruit-id="3">
<span data-color="purple">grape</span>
</li>
</ul>
对于上面的 html,我们可以使用下面的 temme 选择器来提取「水果颜色和名称的列表」。(在线版本链接)
import temme from 'temme'
// 使用 commonjs 导入时需要加上 .default
// const temme = require('temme').default
const selector = `li@fruits {
span[data-color=$color]{$name};
}`
temme(html, selector)
//=>
// {
// "fruits": [
// { "color": "red", "name": "apple" },
// { "color": "white", "name": "pear" },
// { "color": "purple", "name": "grape" }
// ]
// }
如果你对 temme 还不熟悉,那么可以从 豆瓣电影的例子 开始。在线版本中也包含了一些其他较短的例子。比如这个例子从豆瓣电影页面中抓取了电影的基本信息和评分信息。这个例子从天猫的商品详情页面中抓取了评论列表,包括用户的基本信息,初次评价和追加评价, 以及晒的照片的链接.