javascript爬虫
用js爬虫,使用到nodejs
例子中爬取的是中国新闻网时政频道的最新10条新闻的title和链接
事先准备:
1、先去node官网下载安装一下
2、推荐vs code,需要通过终端下载插件,不想的话用cmd小黑框做终端,记事本写代码也行。
开始
1、新建文件夹,注意该文件夹名字不能包含中文
2、代码:
const request = require('request');//
const iconv = require('iconv-lite');//设置编码格式
const Cheerio = require('cheerio');//封装成函数
const requestPromise = (url) =>{return new Promise((resolve, reject) =>{//先取消原有的编码格式request(url, {encoding:null},function (error, response, body) {if(response.statusCode == 200){//如果原网页编码格式有问题,可以转成ubt8格式的,该括号内utf-8为原网页编码格式(演示使用)const bufs = iconv.decode(body, 'utf-8');const html = bufs.toString('utf-8');//转成utf-8// console.log(html);resolve(html);}else{reject(error);}});})
}
const url = 'https://www.chinanews.com.cn/china/'; //.news_list_ulbox ul li div div div:nth-child(1) em a
requestPromise(url).then(res => {const $ = Cheerio.load(res);//成功后用cheerio加载$('.news_list_ulbox ul li div div div:nth-child(1) em a').each((i, item) => {console.log($(item).text());console.log('https://www.chinanews.com.cn/'+$(item).attr('href'))});
});
3、以下操作在vs code的终端,或者cmd切换到文件夹目录下执行都可
先初始化一下项目,运行后文件夹出现一个package.json文件
npm init -y
安装request
、iconv-lite
、cheerio
等插件
npm install request --save
npm install iconv-lite --save
npm install cheerio --save
安装完成后package.json文件内容
4、node 文件名
运行
这是运行成功图片,包含网址url被屏蔽了。。
总结
其实就是request获取页面的html元素 + cheerio分析html,来获取一些固定的标签的内容或者标签的url等值。
如何将爬虫获得的数据自动部署在自己的动态网页中?
懒得出来了,思路如下:
简单点可以通过node来连接数据库,将爬取的数据存入数据库中
但是不能实时获取。。
可以通过bat来设置每秒用node运行一次js文件,下面代码保存为bat格式
@echo off
:loopnode js文件名call :delay 1000
goto loop:delay
echo WScript.Sleep %1>delay.vbs
CScript //B delay.vbs
del delay.vbs
然后网页获取数据库的数据,就行了
(但还是推荐直接py或者java爬虫,然后直接写入动态网页里面)
用js这样子获取得有个前提:有个云服务器(不过好像部署网页都得有一个?)
实测这样运行的话其实也占不了多少云服务器的资源
另:若是Linux系统
bat文件为
for((i=0;i<10;))
do
sleep 2
node news_china.js
done
然后用nohup挂起,防止关闭终端后杀死进程
nohup bat文件路径 &
nohup命令使用
javascript爬虫相关推荐
- JavaScript爬虫:定时下载网页表格内容并储存为txt文件
JavaScript爬虫:定时下载网页表格内容并储存为txt文件 function getData(tableBodyID) {let tBody = document.getElementById( ...
- JavaScript 爬虫
JavaScript 爬虫是一种用于自动抓取网站信息的程序,也叫网络爬虫.蜘蛛.机器人. 它通过在 JavaScript 中实现爬虫的逻辑,然后在浏览器中运行,从而达到抓取网站信息的目的. JavaS ...
- 《高阶前端指北》之JavaScript爬虫速成-视频下载(第四弹)
视频存储 当前各大视频厂商都在升级视频存储架构,对于多数开发者来说,爬视频不像以前那么容易Get了.视频常规的存储方式有两种: 云端加密 阿里云和腾讯云都提供了对应的加密模式,甚至还提供了管道流的处理 ...
- idea爬虫爬取招聘信息,大数据
某工厂来学校培训大数据爬虫,先提供个网页 <%@ page language="java" import="java.util.*" pageEncodi ...
- 云函数爬虫并自动发布公众号推文
云函数爬虫数据并自动发布公众号推文文章 文章目录 云函数爬虫数据并自动发布公众号推文文章 一.项目简介 二.基本流程 三.项目配置 四.资源网站 五.云函数获取数据 六.云函数发布公众号文章 七.效果 ...
- js 返回页面顶部的实现( layui)
js代码 // 点击按钮,返回顶部 function topFunction() {document.getElementsByClassName('layui-body')[0].scrollTop ...
- 有了 Docker,用 JavaScript 框架开发的 Web 站点也能很好地支持网络爬虫的内容抓取...
点这里 阅读目录 用 AngularJS(以及其它 JavaScript 框架)开发的 Web 站点不支持爬虫的抓取 解决方案 为什么公开我们的解决方案 实现 AngularJS 服务 结论 Pr ...
- php爬虫js解析,Spider抓取动态内容(JavaScript指向的页面)
PHP新手,在写爬虫练手,一般情况下跟踪链接不是很难,但是如果是动态页面就束手无策了. 也许分析协议(但是怎么分析?),模拟执行JavaScript脚本(怎么弄?),-- 另外可能写一个通用的爬取AJ ...
- Python爬虫基础:常用HTML标签和Javascript入门
1 HTML基础 大部分HTML标签是闭合的,由开始标签和结束标签构成,二者之间是要显示的内容,例如:<title>网页标题</title>.也有的HTML标签是没有结束标签 ...
最新文章
- c#中分割字符串的几种方法
- Apollo 你了解下这些内容就完美了
- js导入导出总结与实践
- python学习笔记--turtle库的使用
- 年末裁员事件背后的启示录(2)
- 合并果子(Vijos P1097)
- 什么是spark的惰性计算?有什么优势?_spark——spark中常说RDD,究竟RDD是什么?
- UIScrollView autolayout
- Kibana插件sentinl使用教程
- 用递归的方式处理数组 把递归方法方法定义到数组的原型上 (这是一次脑洞大开的神奇尝试)...
- Pytorch的可视化工具tensorboardX
- 【windows10】CMD命令行隐藏窗口运行
- 操作系统与内核的关系
- 计算机图形学实战——Bresenham直线光栅化算法绘制旋转线
- codeforces div2 Not Assigning 题解
- 如何用数学课件制作工具画函数切线
- 基于GeoServer的电子地图系统说明
- 免费的java开发工具_Java那些最常用的免费开放工具,分享这15个!
- Python的内置函数你知道多少?超详解指南
- postman Error: connect ECONNREFUSED 127.0.0.1:9001
热门文章
- 计算机二级经验总结,计算机二级又考砸了!总结了这些经验,让我重拾信心!...
- linux中initrd的含义,详解畅谈Linux initrd系统
- java Comparablelt;gt;_static lt;T extends Object Comparablelt;? super Tgt; gt;T max(Collecti...
- 5步教你快速绘制组织结构图
- 光流方法Flownet的简单调用
- 心跳包(检测不可检测断线)
- Android自定义日历可切换年,月
- qt的c语言实训报告,用QT开发C++项目实习心得
- Redis概述与安装
- 【解决方案】如何通过EasyCVR智能边缘网关设备实现前端设备利旧上云,打造AI课程智慧应用