就在写完上一篇帖子 [下一栈 - 也许会重新定义你的阅读方式] ,我合上了笔记本,装进了书包,挤进了地铁,走出了这一个有点冰冷,又有点热闹的公园。
附上几张"摄影"作品:
在这里看到了好多拿着相机在冰面上等候日落的人们,有情侣,有父女,当然也有像我一样的单身狗,在冰面上滑动着,拍着一张张不同角度的美景。
记忆比较深的有一个大爷,在冰面上爬起来之后很兴奋地对我说,嘿你看,刚刚我拍的那张可好看了!冰块晶莹剔透的!
当然,还有一张我也记忆很深刻的 - 福利照片,嗯。。 有点不雅观(虽然我也这么操作过),但是精神可谓,冰冷的大寒天中的一道靓丽风景线!
好了,看到了可敬的美女福利照片,接下来我也弄一个正经福利吧!
上一个帖子/t/428216,是本人今天发布的第一个 APP,叫做下一栈。
你能使用它把你的博客,或者你喜欢的资讯站点,通过简单的配置以及少量的解析代码,就能集成到其中并能用舒适的阅读体验去学习更多知识点。
当然目前功能还是有限,因为本人的精力也有限,一边在编写开发文档,一边再扩展开发者控制台网站,最后还有 APP 新功能的研发以及下边要讲的:栈点的收集添加。
初步使用的用户可能觉得能订阅的栈点很少,所以我在这里给大家一个福利:留下你的博客,我负责给你写出核心解析代码(虽然就几行),让你轻松把自己的网站集成到其中! (仅限今日与明日留言的用户)
但是也并不是立刻就能给你弄出来的哈! 因为,本人后天就放年假回老家啦! 所以会争取利用一些时间去努力完成哒!
来吧!留下贵站,本人亲自打磨探访!
附:微信交流群,欢迎加入!
下一栈,欢迎安装体验!
1
dibage 2018-02-03 20:56:17 +08:00
奇怪,我提交 url 竟然会被 V2EX 封 IP !!
|
2
dibage 2018-02-03 20:57:09 +08:00
|
3
dibage 2018-02-03 20:58:07 +08:00
|
4
ajeef 2018-02-03 21:00:10 +08:00 via Android
写图床速度,吓到我了
|
5
dibage 2018-02-03 21:00:36 +08:00
排除法排出来了,好奇怪这个 URL 怎么会被违禁了 😂
![]( https://i.loli.net/2018/02/03/5a75b26b7d79e.png) |
6
safedogcc OP @dibage #2 经过半个小时的调试与测试,终于把煎蛋的代码调好啦!
这里附上: 解析数据 请求 GET 地址 http://jandan.net/ 返回 html 请求头,添加一个`User-Agent`(我是在 pc 站点界面调试的,所获的内容较丰富): Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 最后就是解析代码啦! ``` js var result = []; var temp = $HTML.split('<div class="post f list-post">'); temp.shift(); temp.map(function (tmp) { var title = tmp.split('<h2>')[1].split('>')[1].split('<')[0]; var link = tmp.split('<h2>')[1].split('href="')[1].split('"')[0]; var description = tmp.split('<h2>')[1].split('</div>')[1].split('<')[0].trim(); var avatar; try{ avatar = tmp.split('src="')[1].split('"')[0]; } catch(e) { avatar = tmp.split('original="')[1].split('"')[0]; } // 分类 var category = tmp.split('tag">')[1].split('<')[0]; // 点赞数 var zan = tmp.split('class="zan-icon"')[1].split('<')[0].match(/\d+/)[0]; // 评论数 var comment = tmp.split('comment-link')[1].split('>')[1].split('<')[0]; result.push({ title: title, link: link, description: description, avatar: avatar.startsWith('//') ? 'http:'+avatar:avatar, category: [category], tags: [{ icon: 'ios-chatbubbles', text: comment }, { icon: 'ios-thumbs-up', text: zan }] }); }); return result; ``` 测试方式:桌面浏览器打开煎蛋网,打开控制台,在输入上边代码执行之前,先模拟以下获取$HTML 数据: ``` js fetch('http://jiandan.net/').then(ret => rete.text()).then(html => { $HTML = html; }) ``` 获取到$HTML 后,执行上述解析代码,完美~~~ 附上预览图片: https://i.loli.net/2018/02/03/5a75c75062a58.png 祝开发愉快! |
7
safedogcc OP @safedogcc #6
注入脚本可以参考如下: ``` js var style = document.createElement('style');style.innerText='.wechat-hide,#headerwrapper,.shang,.s_related{display:none;}';document.head.appendChild(style); ``` 其实就是把部分 css 样式设置了隐藏~~ 哈哈 |
8
safedogcc OP 这次终于调试完毕了,开发只需要 10 分钟,调试修各种 BUG 却要 1 个小时呀。。
煎蛋网已经上架市场,欢迎在 APP->市场中进行添加订阅😄 |
9
imgalaxy 2018-02-03 23:08:30 +08:00 via Android
求求您们这些爬虫大佬饶了煎蛋这小破站吧
|
10
safedogcc OP @imgalaxy #9
哈哈~~ [下一栈] 并非采用的爬虫噢! 相反,这种方式会给煎蛋网节省不少宽带支出呢~~ 因为每个用户在进入栈点的时候,会由 APP 向目标站点发起一次 HTTP 请求(如果是使用浏览器,那么就可能不止一次咯) 从某种意义上来说,这种节省资源又能增加流量的方式,还是很不错滴~~ 要不体验以下?哈哈 |
12
yinshang 2018-02-04 00:02:03 +08:00 via Android
这明明是大妈。。
|
13
jadec0der 2018-02-04 00:32:52 +08:00 via Android
前三张真是焦内如刀锋般锐利,焦外如奶油般化开,毒,德味,大师,学习了
|
14
zhaoace 2018-02-04 10:27:45 +08:00
你节省了带宽也顺便把点击流量给节省没了
这么兴高采烈的抓煎蛋的东西。。。 楼主啊好好学习做个东西是对的,这么搞别人就很不好了。。。 |
15
uuuu 2018-02-04 11:01:17 +08:00 via iPhone
这是什么地方?
|
16
safedogcc OP @zhaoace #14 我想你貌似搞错了。。
首先呢,抓煎蛋的东西。。 嗯,因为上边有个 v 友贴了煎蛋的地址,我平时也偶尔逛逛煎蛋,所以也就考虑了以下就给开发进来了。 所以,“抓”这个行为是存在的。。 但是这个“抓“,就跟正常使用浏览器访问煎蛋一样,而并非与其他爬虫时时刻刻地爬取,我的”抓“,只有一次 HTTP 请求,除非用户主动刷新列表或列表信息自动过期~ 所以我做的这个栈点,能让目标网站获取到一定的自然流量与忠实用户,你所定义的“搞”我可不太赞同噢~ 😊 |
18
kunluanbudang 2018-02-04 11:48:58 +08:00 via Android
@Livid
疑似广告 |
19
unique 2018-02-04 12:05:57 +08:00 via iPhone
|
20
safedogcc OP @unique #19 博客不错哈~
给调出了核心代码: ``` js var result = []; var temp_array = $HTML.split('post-preview">'); temp_array.shift(); temp_array.map(function (tmp) { var title = tmp.split('post-title">')[1].split('</')[0]; var description = tmp.split('post-excerpt">')[1].split('</')[0]; var link = tmp.split('href="')[1].split('"')[0]; var category = tmp.split('post-tag">')[1].split('<')[0]; var avatar = tmp.split('img src="')[1].split('"')[0]; var date = tmp.split('datetime="')[1].split('"')[0]; result.push({ title: title, description: description, link: 'https://blog.biezhi.me' + link, avatar: 'https://blog.biezhi.me' + avatar, category: [category], tags: [{ icon: 'ios-calendar', text: date }] }); }); return result; ``` 直接在解析配置那 GET 请求你的博客主页,返回数据选择 html,解析代码上述,然后在 APP 的创作上预览试试~~ |
22
stardust21 2018-02-04 18:35:32 +08:00
网站上的二维码下载下来是 zip 结尾的……
|