博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
做一个座右铭工具每天激励自己
阅读量:7059 次
发布时间:2019-06-28

本文共 1500 字,大约阅读时间需要 5 分钟。

hot3.png

想法

新年第一篇文章,最近做英语相关的服务做多了,发现有人在做座右铭的东西,我也有了个想法就是想做一个可以随机一个座右铭的工具,每天激励自己,或者看看别人怎么激励自己,顺便学英语。

实施

技术选型就是lumen+python(爬虫)+js bin+mongo

爬虫

首先我找了个网站, ,国外的专门搜集和做UGC座右铭的,感觉还不错,内容丰富,质量很高,还能学英语 ,举例:I believe that if one always looked at the skies, one would end up with wings.

嗯。。。。怎么说呢,还是挺励志的。 那就是他了,

这个网站虽然有api但是不能直接爬,估计给参数做了加密,我懒,所以直接用selenium了,省的分析他的请求逻辑,就是效率不高,不过无所谓了,他这里ugc的内容不多,加上cron一分钟一次。 爬虫主要代码,这个页面是预加载的所以需要自己加个滑动功能window.scrollBy(0, 400);

print('start get')driver.get('https://www.brainyquote.com/')for i in list(range(50)):    driver.execute_script("window.scrollBy(0, 400);")    time.sleep(2)html = driver.page_sourcesel = Selector(text=html)quotes = sel.xpath("//a[@title='view quote']")for quote in quotes:    save_motto(quote, 'all')

cron

1 * * * * /usr/bin/python3 /var/www/cx_motto/spider/moto_spider_list.py

客户端

客户端想了想没必要做页面所以就直接用js bin功能了 主要代码,很简单。

const options = {  url: 'http://服务器地址/get_one',  headers: {    'User-Agent': 'request'  }};function callback(error, response, body) {  if (!error && response.statusCode == 200) {    const info = JSON.parse(body);    console.log(info.data.content)  }}

服务端主要代码

服务端使用的lumen想想访问量不会太大哈~

public function getOne(){        $count = DB::collection('mottos')->count();        $skip=random_int(0, $count-1);        $oneItem = DB::collection('mottos')->skip($skip)->first();        return response()->json(['data'=>$oneItem]);    }

打个包上传到npmjs

我的叫omotto,像我一样懒得可以直接用我的。

npm i omotto -g

运行效果

开放代码~

希望能帮到大家

转载于:https://my.oschina.net/u/1240907/blog/2995732

你可能感兴趣的文章
东莞:现代会展公司成立呼叫中心 大数据分析提升办展质量
查看>>
中小企业网络方案商该关注哪些增值空间?
查看>>
苹果Safari浏览器遭遇全球故障 搜索即崩溃
查看>>
周鸿祎谈360回归初衷
查看>>
安防爆发年 谈谈车牌识别如何实现从原理到应用的转变?
查看>>
凯立德智慧物流地图服务平台让物流行业更省心
查看>>
安防产业布局跨境电商 有哪些方法?
查看>>
明晰监管范围保护信息安全
查看>>
超融合架构:主数据存储使命之外
查看>>
澳大利亚电信公布其可编程网络计划
查看>>
《Excel数据可视化:一样的数据不一样的图表》——3.2 用项目规则显示隐藏在计算机中的数据...
查看>>
诺基亚将在 MWC 上发布低成本 Android 手机
查看>>
《Outlook时间整理术》一不是电子邮件的问题,而是我们应如何处理它
查看>>
《Adobe Premiere Pro CS5经典教程》——第1课 Adobe Premiere Pro CS5概述 1.1 Adobe Premiere Pro CS5中的新功能...
查看>>
设计师是不是真正的用户
查看>>
《CCIE路由和交换认证考试指南(第5版) (第1卷)》——1.2节以太网第1层:线缆、速率和双工...
查看>>
补丁不起作用:Mac平台安全漏洞仍然存在
查看>>
《Spark核心技术与高级应用》——导读
查看>>
首席技术官 (CTO) 比普通程序员强在哪
查看>>
《交互式程序设计 第2版》一1.4 艺术与交互
查看>>