成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

nodejs做的爬蟲,爬取騰訊動漫的內(nèi)容

godruoyi / 1139人閱讀

摘要:首先上再上一定要設(shè)置的編碼為否則會下載下來的圖片打不開最后是說明引入必須的模塊,函數(shù)接收,并在回調(diào)里處理數(shù)據(jù)。,函數(shù)里,定義數(shù)據(jù)源,這里用的是騰訊動漫,循環(huán)處理數(shù)據(jù)內(nèi)容,里面的函數(shù),即保存圖片到本地。

首先上package.json

{
  "name": "Spider",
  "version": "1.0.0",
  "description": "spider ",
  "main": "index.js",
  "dependencies": {
    "async": "^1.5.0",
    "cheerio": "^0.19.0",
    "eventproxy": "^0.3.4",
    "superagent": "^1.4.0"
  },
  "devDependencies": {},
  "scripts": {
    "test": "node index",
    "start": "node server.js"
  }
}

再上server.js

var http = require("http");
var cheerio = require("cheerio");
var fs = require("fs");
//Utility function that downloads a URL and invokes
//callback with the data.
function downloadPage(url, callback) {
    http.get(url, function(res) {
        var data = "";
        res.on("data", function(chunk) {
            data += chunk;
        });
        res.on("end", function() {
            callback(data);
        });
    }).on("error", function() {
        callback(null);
    });
}


function start() {
    var url = "http://ac.qq.com/Comic/index/type/4/page/";
    var url2 = "http://ac.qq.com/ComicView/index/id/549690/cid/1";
    var arr = [];
    for (var i = 1; i < 13; i++) {
        downloadPage(url + i, function(data) {
            if (data) {
                var $ = cheerio.load(data);
                $("div.ret-search-result > ul > li.ret-search-item").each(function(i, e) {
                    var json = {};
                    json.tags = [];
                    json.img = $(e).find("img").attr("data-original");
                    json.link = $(e).find("a.mod-cover-list-thumb").attr("href");
                    json.id = json.link.split("/").reverse()[0];
                    json.title = $(e).find("h3.ret-works-title > a").text();
                    json.author = $(e).find("p.ret-works-author").text();
                    json.popular = $(e).find("p.ret-works-tags> span > em").text();
                    json.description = $(e).find("p.ret-works-decs").text();
                    $(e).find("p.ret-works-tags>a").each(function(i, e) {
                        json.tags.push($(e).text());
                    });
                    downloadImg(json.img);
                    arr.push(json)
                    console.log("done");
                    // console.log(arr)
                    // fs.writeFileSync("./output.json", JSON.stringify(arr));
                    // });
                })
            }
        })
    }
}

function downloadImg(url) {
    console.log("string")
    http.get(url, function(res) {
        var imgData = "";
        res.setEncoding("binary"); //一定要設(shè)置response的編碼為binary否則會下載下來的圖片打不開
        res.on("data", function(chunk) {
            imgData += chunk;
        });
        res.on("end", function() {
            var d = new Date();
            fs.writeFile("./downImgs/" + Math.floor(Math.random() * 10000000) + ".jpg", imgData, "binary", function(err) {
                if (err) {
                    console.log(err);
                }
                console.log("down success");
            });
        });
    });
}
exports.start = start;

最后是index.js

var server = require("./server");

server.start();

說明

1,引入必須的模塊,http, cheerio, fs

2,downloadPage函數(shù)接收URL,并在回調(diào)里處理數(shù)據(jù)。

3,start函數(shù)里,定義url數(shù)據(jù)源,這里用的是騰訊動漫.

4,for循環(huán)處理url數(shù)據(jù)內(nèi)容,里面的downloadImg函數(shù),即保存圖片到本地。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/81886.html

相關(guān)文章

  • 首次公開,整理12年積累博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時間永遠(yuǎn)都過得那么快,一晃從年注冊,到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • nodeJS實現(xiàn)基于Promise爬蟲 定時發(fā)送信息到指定郵件

    摘要:也就是說,我的篇文章的請求對應(yīng)個實例,這些實例都請求完畢后,執(zhí)行以下邏輯他的目的在于對每一個返回值這個返回值為單篇文章的內(nèi)容,進行方法處理。 英國人Robert Pitt曾在Github上公布了他的爬蟲腳本,導(dǎo)致任何人都可以容易地取得Google Plus的大量公開用戶的ID信息。至今大概有2億2千5百萬用戶ID遭曝光。 亮點在于,這是個nodejs腳本,非常短,包括注釋只有71行。 ...

    xuweijian 評論0 收藏0
  • Nodejs爬蟲實戰(zhàn)項目之鏈家

    摘要:很基礎(chǔ),不喜勿噴轉(zhuǎn)載注明出處爬蟲實戰(zhàn)項目之鏈家效果圖思路爬蟲究竟是怎么實現(xiàn)的通過訪問要爬取的網(wǎng)站地址,獲得該頁面的文檔內(nèi)容,找到我們需要保存的數(shù)據(jù),進一步查看數(shù)據(jù)所在的元素節(jié)點,他們在某方面一定是有規(guī)律的,遵循規(guī)律,操作,保存數(shù)據(jù)。 說明 作為一個前端界的小學(xué)生,一直想著自己做一些項目向全棧努力。愁人的是沒有后臺,搜羅之后且學(xué)會了nodejs和express寫成本地的接口給前端頁面調(diào)用...

    noONE 評論0 收藏0
  • Nodejs爬蟲實戰(zhàn)項目之鏈家

    摘要:很基礎(chǔ),不喜勿噴轉(zhuǎn)載注明出處爬蟲實戰(zhàn)項目之鏈家效果圖思路爬蟲究竟是怎么實現(xiàn)的通過訪問要爬取的網(wǎng)站地址,獲得該頁面的文檔內(nèi)容,找到我們需要保存的數(shù)據(jù),進一步查看數(shù)據(jù)所在的元素節(jié)點,他們在某方面一定是有規(guī)律的,遵循規(guī)律,操作,保存數(shù)據(jù)。 說明 作為一個前端界的小學(xué)生,一直想著自己做一些項目向全棧努力。愁人的是沒有后臺,搜羅之后且學(xué)會了nodejs和express寫成本地的接口給前端頁面調(diào)用...

    MartinDai 評論0 收藏0
  • 手把手教你寫帶登錄NodeJS爬蟲+數(shù)據(jù)展示

    摘要:可以通過傳入待刪除數(shù)組元素組成的數(shù)組進行一次性刪除。如果后臺返回的為表示登錄的已失效,需要重新執(zhí)行。等所有的異步執(zhí)行完畢后,再執(zhí)行回調(diào)函數(shù)?;卣{(diào)函數(shù)的參數(shù)是每個函數(shù)返回數(shù)據(jù)組成的數(shù)組。 其實在早之前,就做過立馬理財?shù)匿N售額統(tǒng)計,只不過是用前端js寫的,需要在首頁的console調(diào)試面板里粘貼一段代碼執(zhí)行,點擊這里。主要是通過定時爬取https://www.lmlc.com/s/web/...

    cpupro 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<