用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

安装requesticonv-litecheerio等插件

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爬虫相关推荐

  1. JavaScript爬虫:定时下载网页表格内容并储存为txt文件

    JavaScript爬虫:定时下载网页表格内容并储存为txt文件 function getData(tableBodyID) {let tBody = document.getElementById( ...

  2. JavaScript 爬虫

    JavaScript 爬虫是一种用于自动抓取网站信息的程序,也叫网络爬虫.蜘蛛.机器人. 它通过在 JavaScript 中实现爬虫的逻辑,然后在浏览器中运行,从而达到抓取网站信息的目的. JavaS ...

  3. 《高阶前端指北》之JavaScript爬虫速成-视频下载(第四弹)

    视频存储 当前各大视频厂商都在升级视频存储架构,对于多数开发者来说,爬视频不像以前那么容易Get了.视频常规的存储方式有两种: 云端加密 阿里云和腾讯云都提供了对应的加密模式,甚至还提供了管道流的处理 ...

  4. idea爬虫爬取招聘信息,大数据

    某工厂来学校培训大数据爬虫,先提供个网页 <%@ page language="java" import="java.util.*" pageEncodi ...

  5. 云函数爬虫并自动发布公众号推文

    云函数爬虫数据并自动发布公众号推文文章 文章目录 云函数爬虫数据并自动发布公众号推文文章 一.项目简介 二.基本流程 三.项目配置 四.资源网站 五.云函数获取数据 六.云函数发布公众号文章 七.效果 ...

  6. js 返回页面顶部的实现( layui)

    js代码 // 点击按钮,返回顶部 function topFunction() {document.getElementsByClassName('layui-body')[0].scrollTop ...

  7. 有了 Docker,用 JavaScript 框架开发的 Web 站点也能很好地支持网络爬虫的内容抓取...

    点这里 阅读目录 用 AngularJS(以及其它 JavaScript 框架)开发的 Web 站点不支持爬虫的抓取 解决方案 为什么公开我们的解决方案 实现 AngularJS 服务 结论   Pr ...

  8. php爬虫js解析,Spider抓取动态内容(JavaScript指向的页面)

    PHP新手,在写爬虫练手,一般情况下跟踪链接不是很难,但是如果是动态页面就束手无策了. 也许分析协议(但是怎么分析?),模拟执行JavaScript脚本(怎么弄?),-- 另外可能写一个通用的爬取AJ ...

  9. Python爬虫基础:常用HTML标签和Javascript入门

    1  HTML基础 大部分HTML标签是闭合的,由开始标签和结束标签构成,二者之间是要显示的内容,例如:<title>网页标题</title>.也有的HTML标签是没有结束标签 ...

最新文章

  1. c#中分割字符串的几种方法
  2. Apollo 你了解下这些内容就完美了
  3. js导入导出总结与实践
  4. python学习笔记--turtle库的使用
  5. 年末裁员事件背后的启示录(2)
  6. 合并果子(Vijos P1097)
  7. 什么是spark的惰性计算?有什么优势?_spark——spark中常说RDD,究竟RDD是什么?
  8. UIScrollView autolayout
  9. Kibana插件sentinl使用教程
  10. 用递归的方式处理数组 把递归方法方法定义到数组的原型上 (这是一次脑洞大开的神奇尝试)...
  11. Pytorch的可视化工具tensorboardX
  12. 【windows10】CMD命令行隐藏窗口运行
  13. 操作系统与内核的关系
  14. 计算机图形学实战——Bresenham直线光栅化算法绘制旋转线
  15. codeforces div2 Not Assigning 题解
  16. 如何用数学课件制作工具画函数切线
  17. 基于GeoServer的电子地图系统说明
  18. 免费的java开发工具_Java那些最常用的免费开放工具,分享这15个!
  19. Python的内置函数你知道多少?超详解指南
  20. postman Error: connect ECONNREFUSED 127.0.0.1:9001

热门文章

  1. 计算机二级经验总结,计算机二级又考砸了!总结了这些经验,让我重拾信心!...
  2. linux中initrd的含义,详解畅谈Linux initrd系统
  3. java Comparablelt;gt;_static lt;T extends Object Comparablelt;? super Tgt; gt;T max(Collecti...
  4. 5步教你快速绘制组织结构图
  5. 光流方法Flownet的简单调用
  6. 心跳包(检测不可检测断线)
  7. Android自定义日历可切换年,月
  8. qt的c语言实训报告,用QT开发C++项目实习心得
  9. Redis概述与安装
  10. 【解决方案】如何通过EasyCVR智能边缘网关设备实现前端设备利旧上云,打造AI课程智慧应用