nodeJs 写个爬虫小玩意

2021/9/8 17:08:54

本文主要是介绍nodeJs 写个爬虫小玩意,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

内容

起一个服务,爬某个网站的数据(我这里爬了个夕阳红游戏交易网站的数据),页面看到我要爬的内容

代码

 1 //引入内置的http包
 2 var http = require('http');
 3 const request = require("request");
 4 const cheerio = require("cheerio");
 5 //创建服务
 6 var server = http.createServer(function(req, res) {
 7     // res.end('111'); //注意这里 括号里不管是什么都要加上‘引号’
 8     getInfo(res)
 9 });
10 
11 //端口监听
12 server.listen(8080);
13 
14 /**
15  * 获取每一条的信息
16  */
17 const getInfo = (res) => {
18     res.writeHead(200, {'Content-type': 'text/html;charset=utf-8'})
19     request({
20         url: 'http://tl.cyg.changyou.com/goods/selling?world_id=0&have_chosen=&page_num=2#goodsTag',
21         method: 'get',
22         headers: {
23             'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36',
24             'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
25             // 这里巨坑!这里开启了gzip的话http返回来的是Buffer。
26             // 'Accept-Encoding': 'gzip, deflate',
27             'Accept-Language': 'zh-CN,zh;q=0.9',
28             'Cache-Control': 'no-cache',
29         },
30         // 想请求回来的html不是乱码的话必须开启encoding为null
31         encoding: null
32     }, (e, r, body) => {
33         // 这样就可以直接获取请求回来html了
34         // console.log('打印HTML', body.toString()); // <html>xxxx</html>
35         const $ = cheerio.load(body);
36         const $li = $('.pg-goods-list .role-item');
37         const list = []
38         $li.map((i, index) => {
39             let obj = {};
40             obj.link =  $(index).children('dl').children('dt').children('a').attr('href');
41             list.push(obj);
42             res.write(obj.link)
43             res.write('<br/>')
44         });
45         res.write('<br/>')
46         res.end('爬完了') //注意这里 括号里不管是什么都要加上‘引号’
47     });
48 }

输出

 

 思路

本地起一个服务,然后打开页面,相当于调了一次请求,开始调取需要爬数据的网站的html,然后用cheerio相关的获取页面元素,类似jquery。然后把信息在页面上打印出来




这篇关于nodeJs 写个爬虫小玩意的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程