Can Resize toolbox

This commit is contained in:
naibo 2023-07-08 23:58:24 +08:00
parent 22cb45061c
commit feb3a037b2
20 changed files with 99 additions and 27 deletions

View File

@ -42,7 +42,7 @@ from PIL import Image
# import uuid # import uuid
from threading import Thread, Event from threading import Thread, Event
from myChrome import MyChrome, MyUCChrome from myChrome import MyChrome, MyUCChrome
from utils import check_pause, download_image, get_output_code, isnull, myMySQL, new_line, write_to_csv, write_to_excel from utils import check_pause, download_image, get_output_code, isnull, lowercase_tags_in_xpath, myMySQL, new_line, write_to_csv, write_to_excel
desired_capabilities = DesiredCapabilities.CHROME desired_capabilities = DesiredCapabilities.CHROME
desired_capabilities["pageLoadStrategy"] = "none" desired_capabilities["pageLoadStrategy"] = "none"
@ -174,6 +174,11 @@ class BrowserThread(Thread):
iframe = node["parameters"]["iframe"] iframe = node["parameters"]["iframe"]
except: except:
node["parameters"]["iframe"] = False node["parameters"]["iframe"] = False
try:
node["parameters"]["xpath"] = lowercase_tags_in_xpath(
node["parameters"]["xpath"])
except:
pass
if node["option"] == 1: # 打开网页操作 if node["option"] == 1: # 打开网页操作
try: try:
cookies = node["parameters"]["cookies"] cookies = node["parameters"]["cookies"]
@ -186,6 +191,10 @@ class BrowserThread(Thread):
iframe = para["iframe"] iframe = para["iframe"]
except: except:
para["iframe"] = False para["iframe"] = False
try:
para["relativeXPath"] = lowercase_tags_in_xpath(para["relativeXPath"])
except:
pass
if para["beforeJS"] == "" and para["afterJS"] == "" and para["contentType"] <= 1 and para["nodeType"] <= 2: if para["beforeJS"] == "" and para["afterJS"] == "" and para["contentType"] <= 1 and para["nodeType"] <= 2:
para["optimizable"] = True para["optimizable"] = True
else: else:
@ -1158,12 +1167,23 @@ class BrowserThread(Thread):
if self.browser.iframe_env != p["iframe"]: if self.browser.iframe_env != p["iframe"]:
p["optimizable"] = False p["optimizable"] = False
continue continue
p["relativeXPath"] = p["relativeXPath"].lower() # p["relativeXPath"] = p["relativeXPath"].lower()
# p["relativeXPath"] = lowercase_tags_in_xpath(p["relativeXPath"])
if p["nodeType"] == 2: if p["nodeType"] == 2:
if p["relativeXPath"].find("/@href") >= 0:
xpath = p["relativeXPath"]
else:
xpath = p["relativeXPath"] + "/@href" xpath = p["relativeXPath"] + "/@href"
elif p["contentType"] == 1: elif p["contentType"] == 1:
# 已经有text()了,不需要再加
if p["relativeXPath"].find("/text()") >= 0 or p["relativeXPath"].find("::text()") >= 0:
xpath = p["relativeXPath"]
else:
xpath = p["relativeXPath"] + "/text()" xpath = p["relativeXPath"] + "/text()"
elif p["contentType"] == 0: elif p["contentType"] == 0:
if p["relativeXPath"].find("/text()") >= 0 or p["relativeXPath"].find("::text()") >= 0:
xpath = p["relativeXPath"]
else:
xpath = p["relativeXPath"] + "//text()" xpath = p["relativeXPath"] + "//text()"
if p["relative"]: if p["relative"]:
# if p["relativeXPath"] == "": # if p["relativeXPath"] == "":
@ -1214,7 +1234,8 @@ class BrowserThread(Thread):
content = "" content = ""
if not (p["contentType"] == 5 or p["contentType"] == 6): # 如果不是页面标题或URL去找元素 if not (p["contentType"] == 5 or p["contentType"] == 6): # 如果不是页面标题或URL去找元素
try: try:
p["relativeXPath"] = p["relativeXPath"].lower() # p["relativeXPath"] = p["relativeXPath"].lower()
# p["relativeXPath"] = lowercase_tags_in_xpath(p["relativeXPath"])
if p["relative"]: # 是否相对xpath if p["relative"]: # 是否相对xpath
if p["relativeXPath"] == "": # 相对xpath有时候就是元素本身不需要二次查找 if p["relativeXPath"] == "": # 相对xpath有时候就是元素本身不需要二次查找
element = loopElement element = loopElement

View File

@ -4,6 +4,7 @@ import csv
import datetime import datetime
import json import json
import os import os
import re
import time import time
import uuid import uuid
import keyboard import keyboard
@ -11,6 +12,7 @@ from openpyxl import Workbook, load_workbook
import requests import requests
from urllib.parse import urlparse from urllib.parse import urlparse
import pymysql import pymysql
from lxml import etree
def is_valid_url(url): def is_valid_url(url):
try: try:
@ -19,6 +21,8 @@ def is_valid_url(url):
except ValueError: except ValueError:
return False return False
def lowercase_tags_in_xpath(xpath):
return re.sub(r"([A-Z]+)(?=[\[\]//]|$)", lambda x: x.group(0).lower(), xpath)
def check_pause(key, event): def check_pause(key, event):
while True: while True:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
{"id":10,"name":"京东全球版-专业的综合网上购物商城","url":"https://www.jd.com","links":"https://www.jd.com","create_time":"7/8/2023, 7:20:32 PM","update_time":"7/8/2023, 7:23:02 PM","version":"0.3.5","saveThreshold":10,"cloudflare":0,"environment":0,"maxViewLength":15,"outputFormat":"mysql","saveName":"地震Info","containJudge":false,"desc":"https://www.jd.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.jd.com","desc":"要采集的网址列表,多行以\\n分开","type":"text","exampleValue":"https://www.jd.com"}],"outputParameters":[{"id":0,"name":"参数1_页面标题","desc":"","type":"text","recordASField":1,"exampleValue":"手机"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0,"waitType":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://www.jd.com","links":"https://www.jd.com","maxWaitTime":10,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"cookies":""}},{"id":2,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[3],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div/a","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"breakMode":0,"breakCode":"","breakCodeWaitTime":0,"allXPaths":["/html/body/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/a[1]","//a[contains(., '手机')]","/html/body/div[last()-5]/div/div[last()-4]/div/div[last()-2]/div/div/div/div[last()-1]/div[last()-12]/a[last()-1]"]}},{"id":3,"index":3,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":1,"contentType":0,"relative":true,"name":"参数1_页面标题","desc":"","extractType":0,"relativeXPath":"","allXPaths":"","exampleValues":[{"num":0,"value":"手机"}],"unique_index":"vaoyqp5ljeljt5coby","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}],"loopType":1}}]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
{"id":8,"name":"京东全球版-专业的综合网上购物商城","url":"https://www.jd.com","links":"https://www.jd.com","create_time":"7/8/2023, 6:27:01 AM","update_time":"7/8/2023, 6:27:01 AM","version":"0.3.5","saveThreshold":10,"cloudflare":0,"environment":0,"maxViewLength":15,"outputFormat":"xlsx","saveName":"current_time","containJudge":false,"desc":"https://www.jd.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.jd.com","desc":"要采集的网址列表,多行以\\n分开","type":"text","exampleValue":"https://www.jd.com"}],"outputParameters":[{"id":0,"name":"参数1_链接文本","desc":"","type":"text","recordASField":1,"exampleValue":"手机"},{"id":1,"name":"参数2_链接地址","desc":"","type":"text","recordASField":1,"exampleValue":"https://shouji.jd.com/"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0,"waitType":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://www.jd.com","links":"https://www.jd.com","maxWaitTime":10,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"cookies":""}},{"id":2,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[3],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div/a","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"breakMode":0,"breakCode":"","breakCodeWaitTime":0,"allXPaths":["/html/body/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/a[1]","//a[contains(., '手机')]","/html/body/div[last()-5]/div/div[last()-4]/div/div[last()-2]/div/div/div/div[last()-1]/div[last()-12]/a[last()-1]"]}},{"id":3,"index":3,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":1,"contentType":0,"relative":true,"name":"参数1_链接文本","desc":"","extractType":0,"relativeXPath":"","allXPaths":"","exampleValues":[{"num":0,"value":"手机"}],"unique_index":"vaoyqp5ljeljt5coby","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":true,"name":"参数2_链接地址","desc":"","relativeXPath":"","allXPaths":"","exampleValues":[{"num":0,"value":"https://shouji.jd.com/"}],"unique_index":"vaoyqp5ljeljt5coby","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}],"loopType":1}}]}

View File

@ -1 +0,0 @@
{"id":9,"name":"京东全球版-专业的综合网上购物商城","url":"https://www.jd.com","links":"https://www.jd.com","create_time":"7/8/2023, 6:27:01 AM","update_time":"7/8/2023, 7:21:19 PM","version":"0.3.5","saveThreshold":10,"cloudflare":0,"environment":0,"maxViewLength":15,"outputFormat":"mysql","saveName":"地震Info","containJudge":false,"desc":"https://www.jd.com","inputParameters":[{"id":0,"name":"urlList_0","nodeId":1,"nodeName":"打开网页","value":"https://www.jd.com","desc":"要采集的网址列表,多行以\\n分开","type":"text","exampleValue":"https://www.jd.com"}],"outputParameters":[{"id":0,"name":"参数1_链接文本","desc":"","type":"text","recordASField":1,"exampleValue":"手机"},{"id":1,"name":"参数2_链接地址","desc":"","type":"text","recordASField":1,"exampleValue":"https://shouji.jd.com/"}],"graph":[{"index":0,"id":0,"parentId":0,"type":-1,"option":0,"title":"root","sequence":[1,2],"parameters":{"history":1,"tabIndex":0,"useLoop":false,"xpath":"","wait":0,"waitType":0},"isInLoop":false},{"id":1,"index":1,"parentId":0,"type":0,"option":1,"title":"打开网页","sequence":[],"isInLoop":false,"position":0,"parameters":{"useLoop":false,"xpath":"","wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"url":"https://www.jd.com","links":"https://www.jd.com","maxWaitTime":10,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"cookies":""}},{"id":2,"index":2,"parentId":0,"type":1,"option":8,"title":"循环","sequence":[3],"isInLoop":false,"position":1,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"/html/body/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div/a","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"scrollType":0,"scrollCount":1,"scrollWaitTime":1,"loopType":1,"pathList":"","textList":"","code":"","waitTime":0,"exitCount":0,"historyWait":2,"breakMode":0,"breakCode":"","breakCodeWaitTime":0,"allXPaths":["/html/body/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/a[1]","//a[contains(., '手机')]","/html/body/div[last()-5]/div/div[last()-4]/div/div[last()-2]/div/div/div/div[last()-1]/div[last()-12]/a[last()-1]"]}},{"id":3,"index":3,"parentId":2,"type":0,"option":3,"title":"提取数据","sequence":[],"isInLoop":true,"position":0,"parameters":{"history":4,"tabIndex":-1,"useLoop":false,"xpath":"","iframe":false,"wait":0,"waitType":0,"beforeJS":"","beforeJSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"paras":[{"nodeType":1,"contentType":0,"relative":true,"name":"参数1_链接文本","desc":"","extractType":0,"relativeXPath":"","allXPaths":"","exampleValues":[{"num":0,"value":"手机"}],"unique_index":"vaoyqp5ljeljt5coby","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0},{"nodeType":2,"contentType":0,"relative":true,"name":"参数2_链接地址","desc":"","relativeXPath":"","allXPaths":"","exampleValues":[{"num":0,"value":"https://shouji.jd.com/"}],"unique_index":"vaoyqp5ljeljt5coby","iframe":false,"default":"","paraType":"text","recordASField":1,"beforeJS":"","beforeJSWaitTime":0,"JS":"","JSWaitTime":0,"afterJS":"","afterJSWaitTime":0,"downloadPic":0}],"loopType":1}}]}

File diff suppressed because one or more lines are too long

View File

@ -2,7 +2,7 @@
官方网址: https://www.easyspider.cn 官方网址: https://www.easyspider.cn
支持Windows 7及以上版本包括32位系统和64位系统。注意此版本的Chrome浏览器永远都是109不会随着Chrome更新而更新为了兼容Win 7系统因此如果想用最新版Chrome浏览器采集数据请在Windows 10 x64及以上系统上运行x64版本的EasySpider。 支持Windows 7及以上版本包括32位系统和64位系统。注意此版本的Chrome浏览器永远都是109不会随着Chrome更新而更新为了兼容Win 7系统因此如果想用最新版Chrome浏览器采集数据请在Windows 10 x64及以上系统上运行x64版本的EasySpider。
视频教程https://www.bilibili.com/video/BV1th411A7ey/ 视频教程https://www.bilibili.com/video/BV1th411A7ey/

Binary file not shown.

Binary file not shown.

View File

@ -228,6 +228,63 @@ function generateToolkit() {
$(document).off('mousemove'); $(document).off('mousemove');
}); });
}); });
// 拖拽右下角改变大小
const wrapperToolkit = document.getElementById('wrapperToolkit');
const EasySpiderResizer = document.getElementById('EasySpiderResizer');
let mousedown = false;
let startX, startY, startWidth, startHeight;
EasySpiderResizer.addEventListener('mousedown', e => {
mousedown = true;
startX = e.clientX;
startY = e.clientY;
startWidth = wrapperToolkit.offsetWidth;
startHeight = wrapperToolkit.offsetHeight;
e.preventDefault();
});
window.addEventListener('mousemove', e => {
// if the mouse is not pressed, do nothing
if (!mousedown) return;
let newX = e.clientX;
let newY = e.clientY;
// Update the width: Original width - (current mouse X position - original mouse X position)
let newWidth = startWidth - (newX - startX);
// Update the height: Original height - (current mouse Y position - original mouse Y position)
let newHeight = startHeight - (newY - startY);
// Set the new width, height and left, top of the wrapperToolkit
// wrapperToolkit.style.left = `${newX}px`;
// wrapperToolkit.style.top = `${newY}px`;
if (newWidth > 300 && newWidth < 1200) {
wrapperToolkit.style.width = `${newWidth}px`;
// set the new width of the wrapperToolkit
}
if (newHeight > 420 && newHeight < 800) {
wrapperToolkit.style.height = `${newHeight}px`;
// console.log(newHeight)
try{
let toolkitcontain = document.getElementsByClassName('toolkitcontain')[0];
toolkitcontain.style.height = `${newHeight-330}px`;
} catch(e){
}
// set the new width of the wrapperToolkit
}
});
window.addEventListener('mouseup', e => {
// when the mouse is released, stop resizing
mousedown = false;
});
timer = setInterval(function() { //时刻监测相应元素是否存在(防止出现如百度一样元素消失重写body的情况),如果不存在,添加进来 timer = setInterval(function() { //时刻监测相应元素是否存在(防止出现如百度一样元素消失重写body的情况),如果不存在,添加进来
if (document.body != null && document.getElementsByClassName("tooltips").length == 0) { if (document.body != null && document.getElementsByClassName("tooltips").length == 0) {
this.clearInterval(); //先取消原来的计时器,再设置新的计时器 this.clearInterval(); //先取消原来的计时器,再设置新的计时器

View File

@ -1,7 +1,9 @@
<template> <template>
<div id="realcontent"> <div id="realcontent">
<!-- <div id="EasySpiderResizer" style="width: 10px; height: 10px; background-color: black; position: absolute; left: 0; bottom: 0; cursor: ne-resize;"></div>-->
<div id="EasySpiderResizer" style="width: 10px; height: 10px; position: absolute; left: 0; top: 0; cursor: nw-resize;"></div>
<div v-if="lang == 'zh'"> <div v-if="lang == 'zh'">
<div class="tooldrag">操作提示框可点此拖动</div> <div class="tooldrag">操作点此拖动左上角调整大小</div>
<div class="realcontent"> <div class="realcontent">
<div v-if="page==0"> <div v-if="page==0">
<div v-if="list.nl.length==0" :style="{overflow: 'auto', maxHeight: winHeight * 0.4 + 'px'}"> <div v-if="list.nl.length==0" :style="{overflow: 'auto', maxHeight: winHeight * 0.4 + 'px'}">
@ -94,7 +96,7 @@
</div> </div>
</div> </div>
<div v-if="valTable.length>0"> <div v-if="valTable.length>0">
<div class="toolkitcontain">{{ setWidth("290px") }} <div class="toolkitcontain">
<table cellSpacing="0" class="toolkittb2"> <table cellSpacing="0" class="toolkittb2">
<tbody> <tbody>
<th v-for="(i, index) in list.opp"> <div>{{ i["name"] }}</div> <span v-bind:index="index" v-on:mousedown="removeField" title="删除此字段">×</span> </th> <th v-for="(i, index) in list.opp"> <div>{{ i["name"] }}</div> <span v-bind:index="index" v-on:mousedown="removeField" title="删除此字段">×</span> </th>
@ -115,7 +117,7 @@
</div> </div>
</div> </div>
<div v-if="valTable.length==0&&tname()!='下一页元素'">{{ setWidth("290px") }}</div> <div v-if="valTable.length==0&&tname()!='下一页元素'"></div>
<div v-if="list.nl.length>0" <div v-if="list.nl.length>0"
style="bottom:12px;position:absolute;color:black!important;left:17px;font-size:13px"> style="bottom:12px;position:absolute;color:black!important;left:17px;font-size:13px">
@ -155,7 +157,7 @@
</div> </div>
</div> </div>
<div v-else-if="lang=='en'"> <div v-else-if="lang=='en'">
<div class="tooldrag">Operation Toolbox (Can drag)</div> <div class="tooldrag">Toolbox (Can drag, resize at left corner)</div>
<div class="realcontent"> <div class="realcontent">
<div v-if="page==0"> <div v-if="page==0">
<div v-if="list.nl.length==0" :style="{overflow: 'auto', maxHeight: winHeight * 0.4 + 'px'}"> <div v-if="list.nl.length==0" :style="{overflow: 'auto', maxHeight: winHeight * 0.4 + 'px'}">
@ -255,7 +257,7 @@
</div> </div>
<div v-if="valTable.length>0"> <div v-if="valTable.length>0">
<div class="toolkitcontain">{{ setWidth("350px") }} <div class="toolkitcontain">
<table cellspacing="0" class="toolkittb2"> <table cellspacing="0" class="toolkittb2">
<tbody> <tbody>
<th v-for="(i, index) in list.opp"><div>{{ i["name"] }}</div> <span v-bind:index="index" v-on:mousedown="removeField" title="Remove this field">×</span> </th> <th v-for="(i, index) in list.opp"><div>{{ i["name"] }}</div> <span v-bind:index="index" v-on:mousedown="removeField" title="Remove this field">×</span> </th>
@ -275,7 +277,7 @@
</div> </div>
</div> </div>
<div v-if="valTable.length==0&&tname()!='下一页元素'">{{ setWidth("290px") }}</div> <div v-if="valTable.length==0&&tname()!='下一页元素'"></div>
<div v-if="list.nl.length>0" <div v-if="list.nl.length>0"
style="bottom:12px;position:absolute;color:black!important;left:17px;font-size:13px"> style="bottom:12px;position:absolute;color:black!important;left:17px;font-size:13px">
@ -659,7 +661,7 @@ export default {
} else if ($(global.nodeList[0]["node"]).contents().filter(function () { } else if ($(global.nodeList[0]["node"]).contents().filter(function () {
return this.nodeType === 3; return this.nodeType === 3;
}).text().indexOf("下一页") >= 0) { }).text().indexOf("下一页") >= 0) {
this.setWidth("280px"); // this.setWidth("280px");
return "下一页元素"; return "下一页元素";
} else if (tag == "A") { } else if (tag == "A") {
return "链接"; return "链接";