相关库
1 | npm install request cheerio async -save |
其中
cheerio 抓取HTML
https://github.com/cheeriojs/cheerio
cheerio
安装
1 | npm install cheerio |
使用
1 | const cheerio = require('cheerio'); |
查找
1 | $('#fruits').find('li').length |
Axios/Request
Axios
基于 Promise 的 HTTP 客户端,可用于浏览器和 Node.js
Axios 是一个基于 Promise 的 HTTP 库,可用在 Node.js 和浏览器上发起 HTTP 请求,支持所有现代浏览器,甚至包括 IE8+!
优点
- 同时支持 Node.js 和浏览器
- 支持 Promise API
- 可以配置或取消请求
- 可以设置响应超时
- 支持防止跨站点请求伪造(XSRF)攻击
- 可以拦截未执行的请求或响应
- 支持显示上传进度
- 广泛用于 React 和 Vue 项目
缺点
- 用起来比较麻烦
Request
简化版 HTTP 请求客户端
Request 提供了一种简化的 HTTP 请求方式。 你可以使用比其他 HTTP 库更少的代码来发起 HTTP 请求。 它不是基于 Promise 的,但如果你需要 Promise,你可以引入request-promise 库,将请求封装为 Promise 并返回。
优点
- API 简单易用
缺点
- 不基于 Promise
request库
1 | var request = require('request'); |
请求跨域的解决方式
1 | // Create the browser window. |
主要添加了第6行和第11行,正式运行时删除即可
文件夹路径
主进程
1 | const { app } = require('electron') |
渲染进程
1 | const { app } = window.require("electron").remote; |
String - You can request the following paths by the name:
home用户的 home 文件夹(主目录)appData
Per-user application data directory, which by default points to:
%APPDATA%Windows 中$XDG_CONFIG_HOMEor~/.configLinux 中~/Library/Application SupportmacOS 中
userData储存你应用程序设置文件的文件夹,默认是appData文件夹附加应用的名称temp临时文件夹exe当前的可执行文件moduleThelibchromiumcontent库desktop当前用户的桌面文件夹documents用户文档目录的路径downloads用户下载目录的路径music用户音乐目录的路径pictures用户图片目录的路径videos用户视频目录的路径recentDirectory for the user’s recent files (Windows only).logs应用程序的日志文件夹pepperFlashSystemPluginPepper Flash 插件的系统版本的完成路径。crashDumpsDirectory where crash dumps are stored.
Returns String - A path to a special directory or file associated with name. On failure, an Error is thrown.
If app.getPath('logs') is called without called app.setAppLogsPath() being called first, a default log directory will be created equivalent to calling app.setAppLogsPath() without a path parameter.
选择文件夹
添加引用
1 | const { app, dialog } = window.require("electron").remote; |
弹窗选择
1 | select_dir: function() { |
文件下载
引用
1 | const request = require("request"); |
下载
1 | var fileurl = "http://www.psvmc.cn/favicon.ico"; |
文件上传
electron写应用时,会遇到自动上传的需求。但是H5中只能通过input(type=file)来手动上传,JS又没有读取文件的权限,此时,我们可以借助node模块完成需求。
1 | uploadfile: function() { |
调用接口
1 | var request = require('request'); |
按行读取文本文件
添加引用
1 | const fs = window.require("fs"); |
方法
1 | { |