python nodejs爬虫_nodejs爬虫

生活中遇到了问题,想去成都买个房,那哪个区域性价比高肯定要考虑一番了,最粗暴直接的就是看租售比,遂打算去链家网爬上各个小区的卖房单价和租房单价比上一比,python写爬虫无疑是最流行的了,但最近在研究node,感觉写个爬虫强化一下node姿势水平还是挺不错的。开整。

首先http请求工具和dom解析工具是必不可少的,严谨的说是对于像我这样的菜鸟是必不可少的,http请求工具我选了request,主流的还有superagent可选,dom解析cheerio应该是不二选择了,接口和jquery一样一样的。如果没接触过请先自行了解这两个库。

基本环境先搭建好,这个不在讨论范围,

1. 第一步我们先看抓一个网页是啥样的:

router.get('/sell_price', (req, res, next) =>{

request({

url:'http://cd.lianjia.com/ershoufang/pg1ng1nb1l1/',

headers: {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.3 (KHTML, like Gecko) Chrome/55.0.2883.9 Safari/537.3'} },function(error, response, body) {if (!error && response.statusCode == 200) {

res.send(body)

}

})

}

不出所料的话,你访问本机sell_price路由的时候链家对应的页面就会出现了。

其中有两点要说明,有的时候你不带User-Agent,网站会拒绝你的请求,chrome开发工具network里面随便找个连接,把里面User-Agent给考出来贴上,有备无患。

链家是UTF-8编码,就没啥说法了,但是比如网易,它是gb2312编码的,你拿过来就成火星文了,此时需要搞个解码工具,iconv-lite应该是主流了。我去爬了下网易,要注意一点,request拿过来的时候已经帮你按UTF-8解码了,你需要request时候设置encoding: null(与设置url同级),拿回来个buffer,再用iconv-lite解码。

2. 第二步我们抓过来是要获取里面的有用信息的,具体到我的目的,就是房价,面积,小区名等,

var $=chee

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值