V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
safedogcc
V2EX  ›  生活方式

北京虽然没有雪,但是有冰啊!(内附偷拍冰地美女翘福利+正经福利)

  •  
  •   safedogcc · 2018-02-03 20:17:12 +08:00 · 4631 次点击
    这是一个创建于 2266 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

    就在写完上一篇帖子 [下一栈 - 也许会重新定义你的阅读方式] ,我合上了笔记本,装进了书包,挤进了地铁,走出了这一个有点冰冷,又有点热闹的公园。

    附上几张"摄影"作品:

    在这里看到了好多拿着相机在冰面上等候日落的人们,有情侣,有父女,当然也有像我一样的单身狗,在冰面上滑动着,拍着一张张不同角度的美景。

    记忆比较深的有一个大爷,在冰面上爬起来之后很兴奋地对我说,嘿你看,刚刚我拍的那张可好看了!冰块晶莹剔透的!

    当然,还有一张我也记忆很深刻的 - 福利照片,嗯。。 有点不雅观(虽然我也这么操作过),但是精神可谓,冰冷的大寒天中的一道靓丽风景线!

    后语

    好了,看到了可敬的美女福利照片,接下来我也弄一个正经福利吧!

    上一个帖子/t/428216,是本人今天发布的第一个 APP,叫做下一栈。
    你能使用它把你的博客,或者你喜欢的资讯站点,通过简单的配置以及少量的解析代码,就能集成到其中并能用舒适的阅读体验去学习更多知识点。

    当然目前功能还是有限,因为本人的精力也有限,一边在编写开发文档,一边再扩展开发者控制台网站,最后还有 APP 新功能的研发以及下边要讲的:栈点的收集添加。

    初步使用的用户可能觉得能订阅的栈点很少,所以我在这里给大家一个福利:留下你的博客,我负责给你写出核心解析代码(虽然就几行),让你轻松把自己的网站集成到其中! (仅限今日与明日留言的用户)

    但是也并不是立刻就能给你弄出来的哈! 因为,本人后天就放年假回老家啦! 所以会争取利用一些时间去努力完成哒!


    来吧!留下贵站,本人亲自打磨探访!

    附:微信交流群,欢迎加入!

    下一栈,欢迎安装体验!

    23 条回复    2018-02-04 21:44:27 +08:00
    dibage
        1
    dibage  
       2018-02-03 20:56:17 +08:00
    奇怪,我提交 url 竟然会被 V2EX 封 IP !!
    dibage
        2
    dibage  
       2018-02-03 20:57:09 +08:00
    dibage
        3
    dibage  
       2018-02-03 20:58:07 +08:00
    ajeef
        4
    ajeef  
       2018-02-03 21:00:10 +08:00 via Android
    写图床速度,吓到我了
    dibage
        5
    dibage  
       2018-02-03 21:00:36 +08:00
    排除法排出来了,好奇怪这个 URL 怎么会被违禁了 😂
    ![]( https://i.loli.net/2018/02/03/5a75b26b7d79e.png)
    safedogcc
        6
    safedogcc  
    OP
       2018-02-03 22:29:47 +08:00
    @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

    祝开发愉快!
    safedogcc
        7
    safedogcc  
    OP
       2018-02-03 22:36:47 +08:00
    @safedogcc #6
    注入脚本可以参考如下:
    ``` js
    var style = document.createElement('style');style.innerText='.wechat-hide,#headerwrapper,.shang,.s_related{display:none;}';document.head.appendChild(style);
    ```

    其实就是把部分 css 样式设置了隐藏~~ 哈哈
    safedogcc
        8
    safedogcc  
    OP
       2018-02-03 23:03:55 +08:00
    这次终于调试完毕了,开发只需要 10 分钟,调试修各种 BUG 却要 1 个小时呀。。

    煎蛋网已经上架市场,欢迎在 APP->市场中进行添加订阅😄
    imgalaxy
        9
    imgalaxy  
       2018-02-03 23:08:30 +08:00 via Android
    求求您们这些爬虫大佬饶了煎蛋这小破站吧
    safedogcc
        10
    safedogcc  
    OP
       2018-02-03 23:25:26 +08:00
    @imgalaxy #9
    哈哈~~ [下一栈] 并非采用的爬虫噢!
    相反,这种方式会给煎蛋网节省不少宽带支出呢~~

    因为每个用户在进入栈点的时候,会由 APP 向目标站点发起一次 HTTP 请求(如果是使用浏览器,那么就可能不止一次咯)

    从某种意义上来说,这种节省资源又能增加流量的方式,还是很不错滴~~ 要不体验以下?哈哈
    imgalaxy
        11
    imgalaxy  
       2018-02-03 23:35:12 +08:00
    @safedogcc #10 也节省了不少广告加载的流量
    yinshang
        12
    yinshang  
       2018-02-04 00:02:03 +08:00 via Android
    这明明是大妈。。
    jadec0der
        13
    jadec0der  
       2018-02-04 00:32:52 +08:00 via Android
    前三张真是焦内如刀锋般锐利,焦外如奶油般化开,毒,德味,大师,学习了
    zhaoace
        14
    zhaoace  
       2018-02-04 10:27:45 +08:00
    你节省了带宽也顺便把点击流量给节省没了

    这么兴高采烈的抓煎蛋的东西。。。
    楼主啊好好学习做个东西是对的,这么搞别人就很不好了。。。
    uuuu
        15
    uuuu  
       2018-02-04 11:01:17 +08:00 via iPhone
    这是什么地方?
    safedogcc
        16
    safedogcc  
    OP
       2018-02-04 11:06:28 +08:00
    @zhaoace #14 我想你貌似搞错了。。

    首先呢,抓煎蛋的东西。。 嗯,因为上边有个 v 友贴了煎蛋的地址,我平时也偶尔逛逛煎蛋,所以也就考虑了以下就给开发进来了。
    所以,“抓”这个行为是存在的。。 但是这个“抓“,就跟正常使用浏览器访问煎蛋一样,而并非与其他爬虫时时刻刻地爬取,我的”抓“,只有一次 HTTP 请求,除非用户主动刷新列表或列表信息自动过期~

    所以我做的这个栈点,能让目标网站获取到一定的自然流量与忠实用户,你所定义的“搞”我可不太赞同噢~ 😊
    safedogcc
        17
    safedogcc  
    OP
       2018-02-04 11:07:49 +08:00
    @uuuu #15 北京 奥森公园,下午 4。去观景最佳哈~
    kunluanbudang
        18
    kunluanbudang  
       2018-02-04 11:48:58 +08:00 via Android
    @Livid
    疑似广告
    unique
        19
    unique  
       2018-02-04 12:05:57 +08:00 via iPhone
    safedogcc
        20
    safedogcc  
    OP
       2018-02-04 12:20:38 +08:00
    @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 的创作上预览试试~~
    pq
        21
    pq  
       2018-02-04 12:38:23 +08:00
    @dibage 你就该被封,浪费我一次点击,进来根本没看到“美女”。。。
    stardust21
        22
    stardust21  
       2018-02-04 18:35:32 +08:00
    网站上的二维码下载下来是 zip 结尾的……
    dibage
        23
    dibage  
       2018-02-04 21:44:27 +08:00
    @safedogcc 煎蛋已加入订阅列表! 不错,点个赞👍
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3647 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 04:20 · PVG 12:20 · LAX 21:20 · JFK 00:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.