node 项目 ------ 图片下载(加强ajax理解)

github地址:https://github.com/hucuanbin/imgDownload

项目说明
1.使用的是node-webkit  有点大 可以压缩包下载查看

2.项目的最初初衷  是直接下载图片,然后直接浏览  比直接去网页看更直观

3.允许下载列表页的图片 和 详情页的大图

项目截图

项目简介:

因为是朋友经常需要找图片  所以就做了一个这样的东西

是通过get方法中是通过url查找,没有直接通过关键字,不太人性和直观,

前端代码在 view目录中

node代码主要是 app/js/background.js

压缩合并用的是gulp

项目原理:

界面设定需要抓取的网页 页码 图片信息等 前端循环遍历  让node去抓取图片地址 并且下载

get方式
1.通过$.ajax去请求页面信息,把dom字符串转成JQ对象,然后查找到对应的图片的地址 或者 图片详情的URL地址

2.通过node的http.get去请求图片信息,并用fs.writeFile下载保存图片,其中下载地址会通过fs.exists进行转化成绝对路径

3.之后发现有些网址请求失败,通过测试,判断为需要页面的cookies信息,则前端加一个iframe,url为当前的抓取的首页,并且通过chrome.webRequest.onBeforeSendHeaders的方法,吧cookies设置到请求中,提交通过

4.并且试过通过登陆,通过原来的下载链接,下载高清大图

5.并且怕抓取过于平凡 设置美0.3秒抓取一次,可以通过前端代码设置

6.通过改下载图片的后缀,例子400_600,等 拿到尽量高清的图片

post方式

1.post方式相对简单,只要知道请求的参数,填写就好

2.post一般都有Refererd的要求,通过谷歌浏览器API 对Refererd和Accept进行修改

3.拿到地址后继续下载图片

总结

在这个小的软件中,运用的新知识不太多,大多在我之前做的项目中就运用到了,不过在开发过程中,见招拆招的感觉,还是非常棒的。
也对ajax了解更进一步,之后也看了一些防抓取和抓取的文章,如果以后工作学习中遇到类似的事情,一定能手到擒拿

代码都在github理,没有进行压缩,不过nw好像有点背时代淘汰了,不过就算不用nw,学习过,以后用在别的壳里面也是可用的

posted @ 2018-03-20 14:40  V黑匣子  阅读(149)  评论(0编辑  收藏  举报