diff --git a/docs/README.md b/docs/README.md
index c6b74b43f0..4b34fc30d9 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -3039,6 +3039,10 @@ board 和 build 可在[这里](http://api.ineal.me/tss/status)查看
+### instapaper
+
+
+
### UI 中国
diff --git a/lib/router.js b/lib/router.js
index 31357be09e..7ab81bed7c 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -1083,6 +1083,9 @@ router.get('/security/pulses', require('./routes/security/pulses'));
// DoNews
router.get('/donews/:column?', require('./routes/donews/index'));
+// instapaper
+router.get('/instapaper/person/:name', require('./routes/instapaper/person'));
+
// UI 中国
router.get('/ui-cn/article', require('./routes/ui-cn/article'));
router.get('/ui-cn/user/:id', require('./routes/ui-cn/user'));
diff --git a/lib/routes/instapaper/person.js b/lib/routes/instapaper/person.js
new file mode 100644
index 0000000000..c1d7b3a431
--- /dev/null
+++ b/lib/routes/instapaper/person.js
@@ -0,0 +1,34 @@
+const axios = require('../../utils/axios');
+const cheerio = require('cheerio');
+
+module.exports = async (ctx) => {
+ const name = ctx.params.name;
+ const link = `https://www.instapaper.com/p/${name}`;
+
+ const response = await axios.get(link);
+ const $ = cheerio.load(response.data);
+
+ const out = $('article.article_item.article_browse')
+ .slice(0, 10)
+ .map(function() {
+ const info = {
+ title: $(this)
+ .find('div.js_title_row.title_row a')
+ .attr('title'),
+ link: $(this)
+ .find('div.js_title_row.title_row a')
+ .attr('href'),
+ description: $(this)
+ .find('div.article_preview')
+ .text(),
+ };
+ return info;
+ })
+ .get();
+
+ ctx.state.data = {
+ title: `${name}-Instapaper分享`,
+ link: link,
+ item: out,
+ };
+};