node 图片验证码库

验证码演示

有库不用是傻逼,这个库有三组图片分别是red gray green ,其中red里面只是数字,不建议使用,剩下两个有字母和数字。

下面是一个老外写的例子,我就是直接参考它写的代码的。https://github.com/liangzeng/validat-num-demo

代码

1
2
3
4
5
6
7
8
9
10
11
12
var PW = require("png-word");
var pw = PW(PW.GRAY); //这里可以选GRAY PNGWord RED
var r = require("random-word")("abcdefghijklmnopqrst0123456789");

const validat = (req, res) => {
var numtxt = req.session.validat_num = r.random(4);
pw.createPNG(numtxt,function(pngnum){
res.send(pngnum);
})
}

module.exports = validat
阅读更多

关于 can't set headers after they are sent 错误解析

错误描述

这个错误翻译过来是在headers发送过以后不能再次发送。意思是发送了两次headers,所以会报错。

然后通过我的不懈努力,终于找到了问题所在。

解析

在处理HTTP请求时,服务器会先输出响应头,然后再输出主体内容,而一旦输出过一次响应头比如执行过 res.writeHead() 或 res.write() 或 res.end(),你再尝试通过 res.setHeader() 或 res.writeHead() 来设置响应头时,就会报这个错误。

有些方法比如 res.redirect() 会调用 res.writeHead()

说明:express中的 res.header() 相当于 res.writeHead() ,res.send() 相当于 res.write()

node.js爬虫练习 爬取数据存储到mongodb

youkumovie(优酷电影目录)

本人的node.js爬虫练习,大神无视,一直更新,爬虫爬到数据存储到数据库中。数据库为mongodb。总共30页,每3秒爬一次,到目前为止亲测没有被封ip,本人第一次写爬虫,大家多多包涵!

用到的库

1
2
3
4
"cheerio": "^1.0.0-rc.2",
"mongodb": "^2.2.33",
"request": "^2.83.0",
"request-promise": "^4.2.2"
阅读更多

利用浏览器抓包获取百度网盘真实下载链接

注:至发文日此方法一直可用。获取到的下载链接可以复制到任意下载软件下载,推荐用idm等国外下载软件,实测迅雷速度不怎么样。不管是多大的文件都可以获取到!

第一步

打开浏览器,我用chrome做的演示,登录百度云

第二步

按F12打开开发者模式,切换至network选项。选择你要下载的文件,点击下载。

第三步

在右侧找到一个已download开头的url,找不到可以直接搜索。点击previve,展开数据,dlink:””,引号里面就是下载链接

第四步

复制链接到迅雷可以下载

网易云音乐的简单抓包过程,获取音乐的真实下载地址

闲来无事,经常听用网易云听歌,然后就想抓一下真实下载地址。我是用chrome浏览器开发者模式抓包的。

  1. 用chrome浏览器打开网易云音乐首页http://music.163.com

  2. 按f12打开开发者模式,并切换至network

  3. 点击手机按钮,并刷新网页,网站就会从pc版变成web版

  4. 点击搜索,输入你想下载的歌曲并回车确定

  5. 在右边会出现一个url为get的网络请求(一开始我以为是请求,点开才发现是post)

  6. 点开preview里面就有搜索结果的详细数据,json格式(web版是上拉加载每次加载20个数据,每次加载一次都会有一次url为get的网络请求)

  7. 点击你想下载的歌曲,让它正常播放然后会出现一个名为url的网络请求

  8. 点开preview里面就有搜索结果的详细数据,里面就有真实的url下载地址

哔哩哔哩分类数据api接口分享jsonp/json

最近正在做一个仿bilibili app的前端项目,用的是h5+,需要数据。所以就试着抓了一下bilibili的api,结果还真抓到了。现在分享出来给有用的人。

json:

https://api.bilibili.com/archive_rank/getarchiverankbypartion?callback=jQuery17208614768484119808_1506153543997&type=jsonp&tid=95&pn=1&_=1506153545368

jsonp:

https://api.bilibili.com/archive_rank/getarchiverankbypartion?jsonp=jsonp&tid=124&pn=1

tid=分类

95:数码

98:机械

122:技术

pn=1页数

具体所有分类tid请看下面,f12开发者模式

[转]前端资源汇总(框架/效果库/插件/网站/工具/素材等)

JavaScript

框架/库

  • velocity:很全面的JavaScript动画库
  • vivus:可以动态描绘 SVG 的 JS 库, 支持多种动画
  • Web Animation:Javascript 实现的 Web Animation API
  • scrollReveal.js:使元素以非常酷帅的方式进入画布 (Viewpoint)
  • snabbt.js:一个利用 Javascript 和 CSS transform 的 animation 库
  • transit:jquery实现的css动画
  • matter-js:2D 物理效果引擎,碰撞、弹跳等
  • parallax:一个用于响应智能手机 orientation 的库
  • focusable:是页面上一个元素高亮的库,关灯效果
  • sensor.js:在智能移动设备浏览器上,通过HTML5的api使用移动设备的功能。定位、运动、倾斜等
  • animatable:仅仅依靠 border-width 和 background-position 实现的各种动态效果
阅读更多

博客绑定域名成功

成功绑定域名wangyu.link,以后可以直接访问wangyu.link

  1. 购买一个域名

  2. 在你的博客项目文件夹source下面创建一个名字为 CHAME 的文件,没有后缀名都是大写。

  3. 打开这个文件,在里面写入你的域名,不带http://和www,也不要有任何所见换行空格。

  4. hexo g hexo d

  5. 进入你的域名解析界面

  6. 添加两个记录类型为CNAME的记录,主机记录分别是www和@,记录值都是 你的github用户名.github.io

  7. 等待解析生效就好了。