ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

nodeJs 写个爬虫小玩意

2021-09-08 13:33:43  阅读:172  来源: 互联网

标签:小玩意 http nodeJs res cheerio 爬虫 html obj const


内容

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

代码

 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。然后把信息在页面上打印出来



标签:小玩意,http,nodeJs,res,cheerio,爬虫,html,obj,const
来源: https://www.cnblogs.com/fengyingYZ/p/15242341.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有