|
@@ -97,18 +97,20 @@
|
|
|
<span v-if="menuIndex == '10'">网页 - </span>
|
|
|
图片下载
|
|
|
</h3>
|
|
|
+ <el-link v-if="menuIndex == '5'" :underline="false" type="danger" style="text-align: center; font-size: 12px;">
|
|
|
+ 仅支持win10及以上系统,浏览器请选择最新版本
|
|
|
+ </el-link>
|
|
|
+
|
|
|
<!-- <el-link v-if="menuIndex == '3' || menuIndex == '4'" :underline="false" type="danger" style="text-align: center; font-size: 12px;">
|
|
|
(需登录{{menuIndex == '3' ? '天猫' : '淘宝'}}账号后才能下载)
|
|
|
</el-link>
|
|
|
<el-link v-if="menuIndex == '2'" :underline="false" type="danger" style="text-align: center; font-size: 12px;">
|
|
|
(需登录京东账号后才能下载)
|
|
|
- </el-link> -->
|
|
|
- <!-- <el-link v-if="menuIndex == '10'" :underline="false" type="info" style="text-align: center; font-size: 12px;">
|
|
|
+ </el-link>
|
|
|
+ <el-link v-if="menuIndex == '10'" :underline="false" type="info" style="text-align: center; font-size: 12px;">
|
|
|
(非会员功能,仅提供试用)
|
|
|
</el-link> -->
|
|
|
-
|
|
|
</div>
|
|
|
- <!-- <el-link v-if="((menuIndex == '3' || menuIndex == '4') && tbStatus == 3) || (menuIndex == '2' && jdStatus == 3)" :underline="false" type="danger" style="text-align: center; font-size: 12px;">登录完成后请关闭浏览器</el-link> -->
|
|
|
</el-row>
|
|
|
|
|
|
<div style="padding: 15px 0 20px;">
|
|
@@ -140,6 +142,16 @@
|
|
|
</el-popover>
|
|
|
</div>
|
|
|
|
|
|
+ <!-- 阿里巴巴账号 -->
|
|
|
+ <template v-if="menuIndex == '1'">
|
|
|
+ <div>
|
|
|
+ <el-tag type="info" size="mini" v-if="alibabaStatus == 1">未检测</el-tag>
|
|
|
+ <el-tag type="success" size="mini" v-if="alibabaStatus == 2">阿里巴巴账号已登录</el-tag>
|
|
|
+ <el-link type="danger" style="text-decoration: underline;" v-if="alibabaStatus == 3" :underline="false" @click="loginUrl('https://www.1688.com')">未登录,点击登录阿里巴巴账号</el-link>
|
|
|
+ <el-button size="mini" type="warning" :loading="checkLoading" style="margin-left: 10px;" :disabled='alibabaStatus == 2' @click="checkAlibabaLogin">检测登录状态</el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
<!-- 天猫/淘宝 -->
|
|
|
<template v-if="menuIndex == '3' || menuIndex == '4'">
|
|
|
<div>
|
|
@@ -373,6 +385,7 @@
|
|
|
tbStatus: 1, // 1、未检测 2、已经登录 3、未登录
|
|
|
jdStatus: 1, // 1、未检测 2、已经登录 3、未登录
|
|
|
redStatus: 1, //同上
|
|
|
+ alibabaStatus: 1, //同上上
|
|
|
execLimit: 2,
|
|
|
execNum: 3, // 限制5张
|
|
|
|
|
@@ -446,11 +459,25 @@
|
|
|
shell.openExternal(url);
|
|
|
});
|
|
|
});
|
|
|
+
|
|
|
+ // 判断系统版本 低于10使用兼容模式
|
|
|
+ if(os.release() && os.release().indexOf('.') > -1){
|
|
|
+ let systemVersion = Number(os.release().split('.')[0]);
|
|
|
+ if(systemVersion < 10){ // 低于win10,软件打开时候浏览器设置为兼容版
|
|
|
+ this.$utils.setStorage('versionType', 1);
|
|
|
+ }else{
|
|
|
+ this.$utils.setStorage('versionType', 2);
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
methods: {
|
|
|
// 实时获取浏览器路径
|
|
|
initPath(){
|
|
|
let chromePath = puppeteer.executablePath().replace('win32-1', 'win64-1');
|
|
|
+ let versionType = this.$utils.getStorage('versionType');
|
|
|
+ if(versionType && versionType == 1){
|
|
|
+ chromePath = chromePath.replace('chrome-win', 'chrome7');
|
|
|
+ }
|
|
|
return chromePath;
|
|
|
},
|
|
|
// 删除文件夹内容
|
|
@@ -1091,6 +1118,60 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
+ // 检查天猫淘宝登录状态
|
|
|
+ checkAlibabaLogin(){
|
|
|
+ this.checkLoading = true;
|
|
|
+ this.alibabaStatus = 1;
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ (async () => {
|
|
|
+ try{
|
|
|
+ if(this.loginBrowser){
|
|
|
+ await this.loginBrowser.close();
|
|
|
+ this.loginBrowser = null;
|
|
|
+ }
|
|
|
+ this.loginBrowser = await puppeteer.launch({
|
|
|
+ executablePath: this.initPath(),
|
|
|
+ args: ['--window-size=1280,800'],
|
|
|
+ userDataDir: os.tmpdir() + separator + 'chrome-data-capture',
|
|
|
+ });
|
|
|
+ const page = await this.loginBrowser.newPage();
|
|
|
+ await page.setViewport({ width: 1280, height: 800 });
|
|
|
+ let testUrl = 'https://www.1688.com';
|
|
|
+ await page.goto(testUrl, {waitUntil : 'networkidle2'});
|
|
|
+
|
|
|
+ let loginInfo = await page.evaluate(() => {
|
|
|
+ let navTags = document.querySelector('.site-nav-sign a');
|
|
|
+ let userTags = document.querySelector('.site-nav-user a');
|
|
|
+
|
|
|
+ if(navTags && navTags.innerHTML.indexOf('登录') > -1){
|
|
|
+ return false;
|
|
|
+ }else if(userTags){
|
|
|
+ return true;
|
|
|
+ }else{
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ if(loginInfo){
|
|
|
+ this.tbStatus = 2;
|
|
|
+ }else{
|
|
|
+ this.tbStatus = 3;
|
|
|
+ }
|
|
|
+
|
|
|
+ resolve(this.tbStatus);
|
|
|
+ this.checkLoading = false;
|
|
|
+ await this.loginBrowser.close();
|
|
|
+ this.loginBrowser = null;
|
|
|
+ }catch(e){
|
|
|
+ this.checkLoading = false;
|
|
|
+ reject(3);
|
|
|
+ this.showError(e);
|
|
|
+ }
|
|
|
+ })();
|
|
|
+ });
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
// 1 - 阿里巴巴下载
|
|
|
async alibabaDownload(urlInfo, browser){
|
|
|
let task = await new Promise((resolve,reject) =>{
|
|
@@ -2107,24 +2188,25 @@
|
|
|
await this.loginBrowser.close();
|
|
|
this.loginBrowser = null;
|
|
|
}
|
|
|
+ puppeteer.use(StealthPlugin());
|
|
|
this.loginBrowser = await puppeteer.launch({
|
|
|
executablePath: this.initPath(),
|
|
|
- args: ['--window-size=1280,800'],
|
|
|
userDataDir: os.tmpdir() + separator + 'chrome-data-capture',
|
|
|
+ args: [
|
|
|
+ '--start-maximized',
|
|
|
+ '--no-sandbox',
|
|
|
+ '--disable-setuid-sandbox',
|
|
|
+ '--disable-blink-features=AutomationControlled',
|
|
|
+ '--window-size=1280,800'
|
|
|
+ ],
|
|
|
});
|
|
|
const page = await this.loginBrowser.newPage();
|
|
|
await page.setViewport({ width: 1280, height: 800 });
|
|
|
-
|
|
|
- await page.evaluateOnNewDocument(() => {
|
|
|
- const newProto = navigator.__proto__;
|
|
|
- delete newProto.webdriver;
|
|
|
- navigator.__proto__ = newProto;
|
|
|
- });
|
|
|
-
|
|
|
let testUrl = "https://www.xiaohongshu.com";
|
|
|
await page.goto(testUrl, {waitUntil : 'networkidle2'});
|
|
|
- let loginContainer = await page.$$('.login-container');
|
|
|
+
|
|
|
let loginBtn = await page.$$('#login-btn');
|
|
|
+ let loginContainer = await page.$$('.login-container');
|
|
|
if(loginContainer.length > 0 || loginBtn.length > 0){
|
|
|
this.redStatus = 3; //未登录
|
|
|
}else{
|