/**
* Created by on 2018/12/25.
*/
const http = require("https");
const fs = require('fs'); //读取html插件
const cheerio = require("cheerio"); //读取的文件路径
const filePath = './山炮表格.xlsx'; //表格插件
const xlsx = require('node-xlsx'); const sheets = xlsx.parse('./山炮表格.xlsx');//获取到所有sheets let allUserId = [];
sheets.forEach(function (sheet) {
// console.log(sheet['name']);
for (var rowId in sheet['data']) {
// console.log(rowId);
var row = sheet['data'][rowId];
// console.log(row);
allUserId.push(row);
}
});
// console.log(allUserId); //微博搜索用户页
const findUserUrl = 'https://s.weibo.com/user';
let hasVUser = []
let index = 1;
function getV(allIds, index) {
let theCurrentId = allIds[index][1];
let theUrl = 'https://s.weibo.com/user?q=' + theCurrentId + '&Refer=SUer_box';
console.log(theUrl)
http.get(''+theUrl, res => {
let html = "";
// 获取页面数据
res.on("data", function (data) {
html += data;
});
// 数据获取结束
res.on("end", function () {
let $ = cheerio.load(html);
// console.log($('.icon-vip').length);
if($('.icon-vip').length>0){
hasVUser.push(theCurrentId);
}
if(index<allIds.length-1){
index++
getV(allIds,index);
}else{
console.log(hasVUser,'所有带v')
}
});
});
} getV(allUserId,index);
});
{
"dependencies": {},
"devDependencies": {
"cheerio": "^1.0.0-rc.2",
"fs": "0.0.1-security",
"node-xlsx": "^0.12.1"
}
}

node爬取页面元素的更多相关文章

  1. Selenium2学习-028-WebUI自动化实战实例-026-获取页面元素值或者元素属性值

    在自动化脚本编写过程中,经常需要获取页面元素的文本进行判断,以便对于不同的文本进行不同的处理.比如:很多的购物网站,加入购物车的按钮是有多个状态的(加入购物车.到货通知.暂不销售等),那么在实际的操作 ...

  2. Selenium2学习-026-WebUI自动化实战实例-024-获取页面元素

    非常简单的方法封装,就不啰嗦了,直接上码咯 ^_^ /** * Get element. It will be return null when there is not such element. ...

  3. [实战演练]python3使用requests模块爬取页面内容

    本文摘要: 1.安装pip 2.安装requests模块 3.安装beautifulsoup4 4.requests模块浅析 + 发送请求 + 传递URL参数 + 响应内容 + 获取网页编码 + 获取 ...

  4. MinerHtmlThread.java 爬取页面线程

    MinerHtmlThread.java 爬取页面线程 package com.iteye.injavawetrust.miner; import org.apache.commons.logging ...

  5. Node爬取简书首页文章

    Node爬取简书首页文章 博主刚学node,打算写个爬虫练练手,这次的爬虫目标是简书的首页文章 流程分析 使用superagent发送http请求到服务端,获取HTML文本 用cheerio解析获得的 ...

  6. 【java】使用URL和CookieManager爬取页面的验证码和cookie并保存

    使用java的net包和io包下的几个工具爬取页面的验证码图片并保存到本地. 然后可以把获取的cookie保存下来,做进一步处理.比如通过识别验证码,进一步使用验证码和用户名,密码,保存下来的cook ...

  7. scrapy中使用selenium来爬取页面

    scrapy中使用selenium来爬取页面 from selenium import webdriver from scrapy.http.response.html import HtmlResp ...

  8. 总结:从Node爬取数据到前端图表展示

    最近寒假在家学习Node.js开发,光看书或者跟着敲代码还不够,得找一点有趣的事情来玩一玩,于是我决定写一个Node爬虫,爬取一些有意思或者说是有用的数据.这个决定只与我的兴趣有关,与Python或者 ...

  9. node爬取html乱码

    var http = require('http'), iconv = require('iconv-lite'); http.get("http://website.com/", ...

随机推荐

  1. oracle sql 数结构表id降序

    UPDATE BAS_ORGANIZATION_TYPE T1SET T1.PARENTID=(select rn from (SELECT id,rownum rn FROM BAS_ORGANIZ ...

  2. poj 2007 Scrambled Polygon

    #include<stdio.h> #include<algorithm> using namespace std; #define Max 60 struct Point { ...

  3. JS中变量和常量的定义

    var只能声明一个变量,这个变量可以保存任何数据类型的值 ES6之前并没有定义声明常量的方式,ES6标准中引入了新的关键字const来定义常量 使用const定义常量后,常量无法改变 const a= ...

  4. SQL高性能分页

    分页的场景就不多说了,无处不在. 方法一:利用row_number() with C as ( select ROW_NUMBER() over(order by orderdate,orderid) ...

  5. 编写高质量代码改善C#程序的157个建议——建议62:避免嵌套异常

    建议62:避免嵌套异常 应该允许异常在调用堆栈上往上传,不要过多的使用catch,然后再throw.过多的使用catch会带来两个问题: 1)代码更多了.这看上去好像你根本不知道怎么处理异常,所以你总 ...

  6. Nginx根据用户请求的不同参数返回不同的json值

    用户请求url:http://localhost:8000/getconfig?v=1.03.01,根据参数v=1.03.01或者其他的值返回不同的json值.如果用户请求不带该参数,则返回默认的js ...

  7. 织梦CMS让channelartlist标签支持currentstyle【转】

    打开include\taglib\channelartlist.lib.php找到 $pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]); ...

  8. asp.net——Ajax与ashx异步请求的简单案例

    Ajax与ashx异步请求的简单案例: 前台页面(aspx): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E ...

  9. sharepoint用户信息同步出错

    首先使用工具定位问题,然后权限不够授予权限 C:\Program Files\Microsoft Office Servers\15.0\Synchronization Service\UIShell

  10. node.js 转载:有效

    二.安装Node.js步骤 1.下载对应你系统的Node.js版本:https://nodejs.org/en/download/2.选安装目录进行安装3.环境配置4.测试 三.前期准备 1.Node ...