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 写个爬虫小玩意的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-21Vue3教程:新手入门到实践应用
- 2024-12-21VueRouter4教程:从入门到实践
- 2024-12-20Vue3项目实战:从入门到上手
- 2024-12-20Vue3项目实战:新手入门教程
- 2024-12-20VueRouter4项目实战:新手入门教程
- 2024-12-20如何实现JDBC和jsp的关系?-icode9专业技术文章分享
- 2024-12-20Vue项目中实现TagsView标签栏导航的简单教程
- 2024-12-20Vue3入门教程:从零开始搭建你的第一个Vue3项目
- 2024-12-20从零开始学习vueRouter4:基础教程
- 2024-12-20Vuex4课程:新手入门到上手实战全攻略