js爬虫心得
第一步:分析要爬的网站:包括是否需要登陆、点击下一页的网址变化、下拉刷新的网址变化等等
第二步:根据第一步的分析,想好爬这个网站的思路
第三步:爬好所需的内容 保存
爬虫过程中用到的一些包:
(1)const request = require('superagent'); // 处理get post put delete head 请求 轻量接http请求库,模仿浏览器登陆
(2)const cheerio = require('cheerio'); // 加载html
(3)const fs = require('fs'); // 加载文件系统模块 将数据存到一个文件中的时候会用到
fs.writeFile('saveFiles/zybl.txt', content, (error1) => { // 将文件存起来 文件路径 要存的内容 错误
if (error1) throw error1;
// console.log(' text save ');
});
this.files = fs.mkdir('saveFiles/simuwang/xlsx/第' + this.page + '页/', (error) => {
if (error) throw error;
}); //创建新的文件夹
//向新的文件夹里面创建新的文件
const writeStream = fs.createWriteStream('saveFiles/simuwang/xlsx/' + '第' + this.page + '页/' + xlsxTitle + '.xlsx', ['a']);
//向新的文件里面写入内容
for (let i = 0; i < value1.length; i += 1) {
writeStream.write(xlsxTitle + '\t' + this.getLocalTime(value1[i][0] / 1000)
+ '\t' + value1[i][1] + '\t' + this.getLocalTime(value2[i][0] / 1000)
+ '\t' + value2[i][1] + '\t' + this.getLocalTime(value3[i][0] / 1000)
+ '\t' + value3[i][1] + '\t');
}
//写入完内容之后及时关闭流,如果不关闭,当爬取很多的文件的时候会出现错误,文件里面写不进去内容
writeStream.end();
(4)const fs = require('graceful-fs'); // 将文件存为xlse
const writeStream = fs.createWriteStream('saveFiles/trader.xlsx'); //新建xlsx文件
writeStream.write(title);//像slsx里面写入内容
(5)const Promise = require('bluebird'); //异步处理
(6)const Nightmare = require('nightmare');//一个高层次的浏览器自动化图书馆 先要安装phantomjs 然后在装nightmare
(7)const co = require('co');
爬虫的相关思路:
(1)获取首页面的所需内容
(2)在首页面的所有内容里面获取所需内容的链接
(3)将(2)里面的链接存到一个list里面去
(3)新写一个function,采用.pop()方法,用来取通过链接得到的新的内容
(4)判断list.length是否大于0,
(5)如果不是,开始爬子页面 并且调用该方法
(6)如果list的长度为0,就说明这一页爬完了,开始下一页,则将url改变
(7)重复(2)(3)(4)(5)(6)直至所有页面爬完
js爬虫心得的更多相关文章
- Node.js爬虫-爬取慕课网课程信息
第一次学习Node.js爬虫,所以这时一个简单的爬虫,Node.js的好处就是可以并发的执行 这个爬虫主要就是获取慕课网的课程信息,并把获得的信息存储到一个文件中,其中要用到cheerio库,它可以让 ...
- node.js爬虫
这是一个简单的node.js爬虫项目,麻雀虽小五脏俱全. 本项目主要包含一下技术: 发送http抓取页面(http).分析页面(cheerio).中文乱码处理(bufferhelper).异步并发流程 ...
- Node.js aitaotu图片批量下载Node.js爬虫1.00版
即使是https网页,解析的方式也不是一致的,需要多试试. 代码: //====================================================== // aitaot ...
- Node.js umei图片批量下载Node.js爬虫1.00
这个爬虫在abaike爬虫的基础上改改图片路径和下一页路径就出来了,代码如下: //====================================================== // ...
- Node.js abaike图片批量下载Node.js爬虫1.01版
//====================================================== // abaike图片批量下载Node.js爬虫1.01 // 1.01 修正了输出目 ...
- Node.js abaike图片批量下载Node.js爬虫1.00版
这个与前作的差别在于地址的不规律性,需要找到下一页的地址再爬过去找. //====================================================== // abaik ...
- Node JS爬虫:爬取瀑布流网页高清图
原文链接:Node JS爬虫:爬取瀑布流网页高清图 静态为主的网页往往用get方法就能获取页面所有内容.动态网页即异步请求数据的网页则需要用浏览器加载完成后再进行抓取.本文介绍了如何连续爬取瀑布流网页 ...
- 微信小程序js学习心得体会
微信小程序js学习心得体会 页面控制的bindtap和catchtap 用法,区别 <button id='123' data-userDate='100' bindtap='tabMessag ...
- Node.js 爬虫爬取电影信息
Node.js 爬虫爬取电影信息 我的CSDN地址:https://blog.csdn.net/weixin_45580251/article/details/107669713 爬取的是1905电影 ...
随机推荐
- 在SQL语句中加入时间比较作为查询条件
select * from 表名 where 列名 = ? and DATEDIFF(hh,时间列,'2016-08-22 15:05:59.000')<9
- MySql连接Visual studio Code First插件
到mySql官网Downloads==> MySQL on Windows==>MySQL for Visual Studio 下载插件安装即可
- GIT使用笔记-fatal:multiple stage entries for merged file处理办法
该错误是在cherry-pick时出现 无法确定冲突原因 分支无法checkout ,reset等等全都失效 在网上给出的解决办法全部都是 rm .git/index git add -A git c ...
- oracle 中的cascade
级联删除,比如你删除某个表的时候后面加这个关键字,会在删除这个表的同时删除和该表有关系的其他对象
- 如何修改MyEclipse项目的web context-root
修改一个MyEclipse项目的名称很容易,右键点项目->rename就行了. 但此时项目的web context-root 还没有改变,需要右键点项目->properties->M ...
- Android 强烈推荐:程序员接私活那点事
今天周末在家宅着,并不是我不想运动,是因为北京的雨雪交加导致我想在家写文章,不过想想给大家写文章还是蛮惬意的,望一眼窗外,看一眼雪景,指尖在键盘上跳动,瞬间有种从屌丝程序员转变成了小姑娘们都羡慕的文艺 ...
- DataList 用法详解
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DataList.aspx. ...
- .NET中Redis安装部署及使用方法简介附->开源Redis操作辅助类
Redis是一个用的比较广泛的Key/Value的内存数据库,新浪微博.Github.StackOverflow 等大型应用中都用其作为缓存,Redis的官网为http://redis.io/. Re ...
- doPost()和doGet()
GET 请求的一些特点: GET 请求会有 cache GET 请求会保留在浏览历史中 GET 请求可以保存到书签 GET 请求不应用于处理敏感数据 GET 请求有长度限制 GET 请求应该只用于获取 ...
- sdk命令
SDK命令 常用sdk命令 开启adb服务:adb start -server 关闭adb服务:adb kill -server 查看模拟器/真机:adb devices 安装/卸载/运行程序: 安装 ...