点击查看爬取世纪佳缘相亲交友信息

利用node.js,写了一个爬虫js。1个小时左右的时间,便爬取了2000多条交友信息,包括网名,年龄,图片,学历,工资等。当然,爬取的速度和网速有很大的关系,也和你要爬取的网站响应的速度有关。先看一下,爬取的成果(涉及隐私,面部全部打上马赛克)

说一下思路和代码流程:

首先require引入http(如果爬取的网站是https安全模式的话,引入https),fs,  path 。代码如下:

var https = require("https");
var http = require("http");
var fs = require("fs");
var path = require("path");
var file;

封装一个下载图片到本地的函数,也就是说,给这个函数传一个图片在互联网的地址就可以下载这张图片到本地。图片的命名采用爬虫爬取的网名+性别+交友宣言+学历+工资..........

function downPic(url) {var filename = path.join("images",file);http.get(url,function (res) {res.setEncoding("binary");var data = "";res.on("data",function (chunk) {data+=chunk;});res.on("end",function () {fs.writeFile(filename, data,{encoding:"binary"}, function (err) {if (err){console.log(err);}else {console.log("下载成功!");};});});});
}

选择想要爬取网站的地址url(比如:http://www.xxxx.com),先把这个网站所有的html爬取下来。

var file="http://www.xxxx.com"
http.get(file,function (res) {var data = "";res.on("data",function (chunk) {data += chunk;});res.on("end",function (){console.log(data); }

如上代码,data中已经保存了该页面的所有html文档内容。剩下了就是对这个data中有用的信息进行处理。利用强大的正则表达式对该页面进行筛选。然后把所有的有用信息,存在数组里边。

var reg_img = /src="(http:\/\/[a-zA-Z0-9-/_.]+)" alt="/g; //爬取图片var reg_name = /" target="_blank">([a-zA-Z0-9-\u4E00-\u9FA5/]+)<\/a><\/span>/g; //爬取网名var reg_info = /"fz12">([a-zA-Z0-9-\u4E00-\u9FA5,\s]+)/g; //爬取信息var reg_address = /    ([\u4E00-\u9FA5\s-]+)<br/g; //爬取地址var reg_salary=/月薪:([0-9-\u4E00-\u9FA5\s-]+)<\/p/g; //爬取工资var reg_intro=/" target="_blank">([a-zA-Z0-9-\u4E00-\u9FA5 \/,?。;:'"、.\r\n\s]+)<\/a><\/p>/g;  //爬取介绍var temp;var imgs = [];var names = [];var infos = [];var address = [];var salarys = [];var intros = [];while ((temp=reg_img.exec(data))!=null){imgs.push(temp[1]);}while ((temp=reg_name.exec(data))!=null){names.push(temp[1]);}while ((temp=reg_info.exec(data))!=null){infos.push(temp[1]);}while ((temp=reg_address.exec(data))!=null){address.push(temp[1].trim());}while ((temp=reg_salary.exec(data))!=null){salarys.push(temp[1]);}while ((temp=reg_intro.exec(data))!=null){intros.push(temp[1]);}for(var i=0;i<imgs.length;i++){   a++;file=a+" 网名:"+names[i]+" 信息:"+infos[i]+" 地址:"+address[i]+" 工资:"+salarys[i]+"元"+"介绍:"+intros[i]+".jpg";downPic(imgs[i]);}
})

到这里一个页面的信息就爬取完了,要想爬取多个页面。就要改变url,然后多次代用上面的代码。多次调用可以通过for()循环,或者通过setInterval()定时器每隔一段时间调用一次。建议通过定时器进行调用,因为通过for循环的话,太快!且不说你自己的电脑受不受得了,而且你不断的爬取获取该网站的内容,容易被该网站发现。很多的网站都有反爬虫监控。

利用node.js写爬虫 爬取某相亲网站全部交友信息相关推荐

  1. Java爬虫 爬取某招聘网站招聘信息

    Java爬虫 爬取某招聘网站招聘信息 一.系统介绍 二.功能展示 1.需求爬取的网站内容 2.实现流程 2.1数据采集 2.2页面解析 2.3数据存储 三.获取源码 一.系统介绍 系统主要功能:本项目 ...

  2. Python爬虫爬取链家网上的房源信息练习

    一 原链接:用Python爬虫爬取链家网上的房源信息_shayebuhui_a的博客-CSDN博客_python爬取链家 打开链家网页:https://sh.lianjia.com/zufang/  ...

  3. python爬虫爬取微信公众号小程序信息

    python爬虫爬取微信公众号小程序信息 爬取内容 某汽车维修信息提供的维修店名称,地点以及电话(手机)号码 爬取步骤 啥也别管,先抓包看看,在这里,博主使用的抓包软件是charles 抓包:将网络传 ...

  4. python3网络爬虫--爬取b站用户投稿视频信息(附源码)

    文章目录 一.准备工作 1.工具 二.思路 1.整体思路 2.爬虫思路 三.分析网页 1.分析数据加载方式 2.分词接口url 3.分析用户名(mid) 四.撰写爬虫 五.得到数据 六.总结 上次写了 ...

  5. 详细实例:用python爬虫爬取幽默笑话网站!(建议收藏)

    前言: 今天为大家带来的内容是详细实例:用python爬虫爬取幽默笑话网站!(建议收藏),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下! 爬取网站为 ...

  6. 爬虫爬取快代理网站动态IP

    爬虫爬取快代理网站动态IP import requests, time from lxml import etree import time import randomcookie = "& ...

  7. Node.js 2小时爬取驴妈妈8W+条旅游数据

    节前在CSDN博客看了<用python爬虫爬取去哪儿4500个热门景点,看看国庆不能去哪儿>. 后来我自己用Node.js去爬取一下,发现有问题. 去哪儿接口:http://piao.qu ...

  8. 【Node.js】爬虫--抓取新闻标题、图片、文字描述,支持QQ、iFeng

    Sodino 文章目录 1. app.js 2. img-spider.js 3. img.gallery.js 4. ifengImgs.js 5. ifengPictures.js 6. qqIm ...

  9. Python爬虫爬取伯乐在线网站信息

    一.环境搭建 1.创建环境 执行pip install scrapy安装scrapy 使用scrapy startproject ArticleSpider创建scrapy项目 使用pycharm导入 ...

最新文章

  1. Microsoft Visual C++ 14.0 is required解决方法
  2. 思科:四分之三的物联网项目将以失败告终
  3. tensorflow 滑动平均使用和恢复
  4. JAVA 框架-Spring-AOP面向切面
  5. java 采样_Java编程实现beta分布的采样或抽样实例代码
  6. Python3 中的 asyncio async await 概念(实例)(ValueError: too many file descriptors in select())
  7. ORACLE批量更新四种方法比较
  8. Struts2 注解
  9. MDSF:如何使用GMF来做TOGAF建模工具
  10. IntelliJ IDEA 无法导入HttpServlet包解决方法
  11. gif表情包在线生成器怎么一键生成图片
  12. arm-linux-gcc 64位下载,arm-linux-gcc下载与安装
  13. Python计算股票收益率、Alpha和Beta系数
  14. 电感耦合等离子体质谱仪技术分析环境各方面的污染
  15. 2.cycloneIII系列FPGA下载模式的配置
  16. 2018招商银行春招笔试编程题第一题
  17. 精神小伙python小白用python可视化分析青春有你2小姐姐有关数据
  18. 会变色的背景透明NSButton
  19. ECDSA算法JAVA实现加解密
  20. 【华为云-开发者专属集市】使用ECS搭建WordPress博客平台

热门文章

  1. 100本名著浓缩了一百句话
  2. ASP.NET用户个性化设置Profile——配置
  3. 【vue】优雅的首页-早晚安问候语实现
  4. 在EXCEL的单元格里批量插入图片
  5. Html css是前端吗,HTML5 CSS3 Web前端开发
  6. 树状数组板子题之一:hdu 1166 敌兵布阵
  7. android解除网络限制
  8. C#文字跟随鼠标移动
  9. linux设置进程最大内存,修改limit配置限制linux最大文件描述符和最大进程数
  10. 表达式解析器(MVEL)