需要用到的第三方模塊有:
superagent
superagent-charset (手動指定編碼,解決GBK中文亂碼)
cheerio
express
async (并發控制)
完整的代碼,可以在我的github中可以下載。主要的邏輯邏輯在 netbian.js 中。
以彼岸桌面(http://www.netbian.com/)欄目下的風景壁紙(http://www.netbian.com/fengjing/index.htm)為例進行講解。
1. 分析URL

不難發現:
首頁: 欄目/index.htm
分頁: 欄目/index_具體頁碼.htm
知道這個規律,就可以批量下載壁紙了。
2. 分析壁紙縮略圖,找到對應壁紙的大圖
使用chrome的開發者工具,可以發現,縮略圖列表在 class="list"的div里,a標簽的href屬性的值就是單張壁紙所在的頁面。

部分代碼:
request .get(url) .end(function(err, sres){ var $ = cheerio.load(sres.text); var pic_url = []; // 中等圖片鏈接數組 $('.list ul', 0).find('li').each(function(index, ele){ var ele = $(ele); var href = ele.find('a').eq(0).attr('href'); // 中等圖片鏈接 if(href != undefined){ pic_url.push(url_model.resolve(domain, href)); } });});3. 以“http://www.netbian.com/desk/17662.htm”繼續分析
打開這個頁面,發現此頁面顯示的壁紙,依舊不是最高的分辨率。
點擊“下載壁紙”按鈕里的鏈接,打開新的頁面。

4. 以“http://www.netbian.com/desk/17662-1920x1080.htm”繼續分析
打開這個頁面,我們最終要下載的壁紙,放在一個table里面。如下圖,http://img.netbian.com/file/2017/0203/bb109369a1f2eb2e30e04a435f2be466.jpg
才是我們最終要下載的圖片的URL(幕后BOSS終于現身了(@ ̄ 主站蜘蛛池模板: 博客| 印江| 科技| 白沙| 沙河市| 灵璧县| 长沙市| 团风县| 建始县| 兴业县| 逊克县| 伊川县| 德格县| 遂宁市| 巴塘县| 呼玛县| 织金县| 枞阳县| 财经| 清丰县| 那坡县| 韶关市| 同德县| 务川| 通江县| 公主岭市| 清苑县| 新余市| 伊金霍洛旗| 鲁甸县| 南漳县| 绥芬河市| 九寨沟县| 疏附县| 庆城县| 大厂| 池州市| 股票| 九江市| 略阳县| 根河市|