Repository Analysis

NaiboWang/EasySpider

A visual no-code/code-free web crawler/spider易采集:一个可视化浏览器自动化测试/数据采集/网页爬虫软件,可以无代码图形化的设计和执行爬虫任务。别名:ServiceWrapper面向Web应用的智能化服务封装系统。

2.6 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of NaiboWang/EasySpider, a JavaScript project with 44,225 GitHub stars. SynthScan v2.0 examined 236,135 lines of code across 1584 source files, recording 530 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 2.6 places this repository in the Likely human-written band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

2.6
Adjusted Score
2.6
Raw Score
100%
Time Factor
2026-07-03
Last Push
44.2K
Stars
JavaScript
Language
236.1K
Lines of Code
1.6K
Files
530
Pattern Hits
2026-07-14
Scan Date
0.02
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 7HIGH 25MEDIUM 30LOW 468

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 530 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Excessive Try-Catch Wrapping160 hits · 124 pts
SeverityFileLineSnippetContext
LOW…ve Captcha in EasySpider with CapSolver Integration.md338 except Exception as e:STRING
LOW…ve Captcha in EasySpider with CapSolver Integration.md498 except Exception as e:STRING
MEDIUMExecuteStage/easyspider_executestage.py440def removeDuplicateData(self):CODE
LOWExecuteStage/easyspider_executestage.py123 except Exception as e:CODE
LOWExecuteStage/easyspider_executestage.py1724 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py1729 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py1743 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py1748 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py1762 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py634 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py726 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py736 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py748 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py759 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py778 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py960 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py1003 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py1125 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py1185 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py1244 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py1373 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py1410 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py1572 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py1584 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py1781 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py1817 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py1832 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py1962 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py2133 except Exception as e:STRING
LOWExecuteStage/easyspider_executestage.py2181 except Exception as e:STRING
MEDIUMExecuteStage/utils.py758 print("Error SQL:", sql, to_write)CODE
MEDIUMExecuteStage/utils.py88def is_valid_url(url):CODE
LOWExecuteStage/utils.py703 except Exception as e:CODE
LOWExecuteStage/utils.py709 except Exception as e:CODE
LOWExecuteStage/utils.py716 except Exception as e:CODE
LOWExecuteStage/utils.py724 except Exception as e:CODE
LOWExecuteStage/utils.py732 except Exception as e:CODE
LOWExecuteStage/utils.py54 except Exception as e:CODE
LOWExecuteStage/utils.py268 except Exception as e:CODE
LOWExecuteStage/utils.py270 except Exception as e:CODE
LOWExecuteStage/utils.py395 except Exception as e:CODE
LOWExecuteStage/utils.py619 except Exception as e:CODE
LOWExecuteStage/utils.py756 except Exception as e:CODE
LOWExecuteStage/myCode.py47except Exception as e:CODE
LOWExecuteStage/myChrome.py89 except Exception as e:CODE
LOWExecuteStage/myChrome.py161 except Exception as e:CODE
LOWExecuteStage/myChrome.py206 except Exception as e:CODE
LOWExecuteStage/myChrome.py244 except Exception as e:CODE
LOWExecuteStage/myChrome.py287 except Exception as e:CODE
LOWExecuteStage/myChrome.py303 except Exception as e:CODE
LOWExecuteStage/myChrome.py341 except Exception as e:CODE
MEDIUMExecuteStage/easyspider_executestage_single.py357def get_output_code(output):CODE
LOWExecuteStage/easyspider_executestage_single.py464 except Exception as e:CODE
LOWExecuteStage/easyspider_executestage_single.py496 except Exception as e:CODE
LOWExecuteStage/easyspider_executestage_single.py610 except Exception as e:CODE
LOWExecuteStage/easyspider_executestage_single.py688 except Exception as e:CODE
LOWExecuteStage/easyspider_executestage_single.py735 except Exception as e:CODE
LOWExecuteStage/easyspider_executestage_single.py810 except Exception as e:CODE
LOWExecuteStage/easyspider_executestage_single.py859 except Exception as e:CODE
LOWExecuteStage/undetected_chromedriver_ES/reactor.py51 except Exception as e:CODE
100 more matches not shown…
Cross-Language Confusion17 hits · 71 pts
SeverityFileLineSnippetContext
HIGHExecuteStage/easyspider_executestage.py1733 '`, document, null, XPathResult.ANY_TYPE, null);for(let i=0;i<arguments[0];i++){result.iteraSTRING
HIGHExecuteStage/easyspider_executestage.py1737 '`, document, null, XPathResult.ANY_TYPE, null);for(let i=0;i<arguments[0];i++){result.iterateNSTRING
HIGHExecuteStage/easyspider_executestage.py1752 '`, document, null, XPathResult.ANY_TYPE, null);for(let i=0;i<arguments[0];i++){result.iteraSTRING
HIGHExecuteStage/easyspider_executestage.py1901 arr.push(content.childNodes[i].nodeValue);\STRING
HIGHExecuteStage/easyspider_executestage_single.py681 '`, document, null, XPathResult.ANY_TYPE, null);for(let i=0;i<arguments[0];i++){result.iterateNext();} resulCODE
HIGHExecuteStage/easyspider_executestage_single.py773 arr.push(content.childNodes[i].nodeValue);\CODE
HIGHExecuteStage/undetected_chromedriver_ES/__init__.py637 const nativeToStringFunctionString = Error.toString().replace(/Error/g, 'toString')CODE
HIGHExecuteStage/undetected_chromedriver_ES/__init__.py663 # while(objectToInspect !== null)COMMENT
HIGHExecuteStage/undetected_chromedriver_ES/__init__.py678 # while(objectToInspect !== null)COMMENT
HIGH…EasySpider_windows_x64/Code/easyspider_executestage.py1680 '`, document, null, XPathResult.ANY_TYPE, null);for(let i=0;i<arguments[0];i++){result.iteraSTRING
HIGH…EasySpider_windows_x64/Code/easyspider_executestage.py1684 '`, document, null, XPathResult.ANY_TYPE, null);for(let i=0;i<arguments[0];i++){result.iterateNSTRING
HIGH…EasySpider_windows_x64/Code/easyspider_executestage.py1699 '`, document, null, XPathResult.ANY_TYPE, null);for(let i=0;i<arguments[0];i++){result.iteraSTRING
HIGH…EasySpider_windows_x64/Code/easyspider_executestage.py1844 arr.push(content.childNodes[i].nodeValue);\STRING
HIGH…b/EasySpider_Linux_x64/Code/easyspider_executestage.py1680 '`, document, null, XPathResult.ANY_TYPE, null);for(let i=0;i<arguments[0];i++){result.iteraSTRING
HIGH…b/EasySpider_Linux_x64/Code/easyspider_executestage.py1684 '`, document, null, XPathResult.ANY_TYPE, null);for(let i=0;i<arguments[0];i++){result.iterateNSTRING
HIGH…b/EasySpider_Linux_x64/Code/easyspider_executestage.py1699 '`, document, null, XPathResult.ANY_TYPE, null);for(let i=0;i<arguments[0];i++){result.iteraSTRING
HIGH…b/EasySpider_Linux_x64/Code/easyspider_executestage.py1844 arr.push(content.childNodes[i].nodeValue);\STRING
Hallucination Indicators7 hits · 70 pts
SeverityFileLineSnippetContext
CRITICALExecuteStage/undetected_chromedriver_ES/__init__.py278 else selenium.webdriver.common.service.utils.free_port()CODE
CRITICALElectronJS/EasySpider_zh/content-scripts/main.js7968jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) {CODE
CRITICALElectronJS/EasySpider_en/content-scripts/main.js7968jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) {CODE
CRITICALElectronJS/src/bootstrap/jquery-1.4.2.min.js2!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):fCODE
CRITICALElectronJS/src/js/jquery-3.4.1.min.js2!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):fCODE
CRITICALElectronJS/src/taskGrid/jquery-3.4.1.min.js2!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):fCODE
CRITICALElectronJS/src/taskGrid/bootstrap/jquery-1.4.2.min.js2!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):fCODE
Hyper-Verbose Identifiers70 hits · 68 pts
SeverityFileLineSnippetContext
LOWExtension/manifest_v3/src/content-scripts/global.js74function getAbsoluteXPathWithReverseIndex(element) {CODE
LOWExecuteStage/utils.py318def _substitute_fields_as_python_literal(text, outputParameters):CODE
LOWExecuteStage/utils.py333def _substitute_fields_as_js_literal(text, outputParameters):CODE
LOWExecuteStage/llm_beta.py11def predict_structure_from_image(image_path):CODE
LOWElectronJS/main.js242async function findElementAcrossAllWindows(CODE
LOWElectronJS/EasySpider_zh/content-scripts/global.js76function getAbsoluteXPathWithReverseIndex(element) {CODE
LOWElectronJS/EasySpider_zh/content-scripts/main.js8871function addToPrefiltersOrTransports( structure ) {CODE
LOWElectronJS/EasySpider_zh/content-scripts/main.js8905function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {CODE
LOWElectronJS/EasySpider_zh/content-scripts/main.js11896function extractPropsFromVNodeData(data, Ctor, tag) {CODE
LOWElectronJS/EasySpider_zh/content-scripts/main.js13923function createFunctionalComponent(Ctor, propsData, data, contextVm, children) {CODE
LOWElectronJS/EasySpider_zh/content-scripts/main.js13952function cloneAndMarkFunctionalResult(vnode, data, contextVm, options, renderContext) {CODE
LOWElectronJS/EasySpider_zh/content-scripts/main.js14103function createComponentInstanceForVnode(CODE
LOWElectronJS/EasySpider_zh/content-scripts/main.js14864function resolveConstructorOptions(Ctor) {CODE
LOWElectronJS/EasySpider_zh/content-scripts/main.js15820 function removeAndInvokeRemoveHook(vnode, rm) {CODE
LOWElectronJS/EasySpider_en/content-scripts/global.js76function getAbsoluteXPathWithReverseIndex(element) {CODE
LOWElectronJS/EasySpider_en/content-scripts/main.js8871function addToPrefiltersOrTransports( structure ) {CODE
LOWElectronJS/EasySpider_en/content-scripts/main.js8905function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {CODE
LOWElectronJS/EasySpider_en/content-scripts/main.js11896function extractPropsFromVNodeData(data, Ctor, tag) {CODE
LOWElectronJS/EasySpider_en/content-scripts/main.js13923function createFunctionalComponent(Ctor, propsData, data, contextVm, children) {CODE
LOWElectronJS/EasySpider_en/content-scripts/main.js13952function cloneAndMarkFunctionalResult(vnode, data, contextVm, options, renderContext) {CODE
LOWElectronJS/EasySpider_en/content-scripts/main.js14103function createComponentInstanceForVnode(CODE
LOWElectronJS/EasySpider_en/content-scripts/main.js14864function resolveConstructorOptions(Ctor) {CODE
LOWElectronJS/EasySpider_en/content-scripts/main.js15820 function removeAndInvokeRemoveHook(vnode, rm) {CODE
LOWElectronJS/src/bootstrap/js/bootstrap.bundle.js105 function getSpecialTransitionEndEvent() {CODE
LOWElectronJS/src/bootstrap/js/bootstrap.bundle.js169 getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {CODE
LOWElectronJS/src/bootstrap/js/bootstrap.bundle.js2072 function getOffsetRectRelativeToArbitraryNode(children, parent) {CODE
LOWElectronJS/src/bootstrap/js/bootstrap.bundle.js2124 function getViewportOffsetRectRelativeToArtbitraryNode(element) {CODE
LOWElectronJS/src/bootstrap/js/bootstrap.bundle.js2176 function getFixedPositionOffsetParent(element) {CODE
LOWElectronJS/src/bootstrap/js/bootstrap.js106 function getSpecialTransitionEndEvent() {CODE
LOWElectronJS/src/bootstrap/js/bootstrap.js170 getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {CODE
LOWElectronJS/src/js/vue.global.js860 function createArrayInstrumentations() {CODE
LOWElectronJS/src/js/vue.global.js1279 function createInstrumentationGetter(isReadonly, shallow) {CODE
LOWElectronJS/src/js/vue.global.js1799 function callWithAsyncErrorHandling(fn, instance, type, args) {CODE
LOWElectronJS/src/js/vue.global.js2265 function createDevtoolsComponentHook(hook) {CODE
LOWElectronJS/src/js/vue.global.js2272 function createDevtoolsPerformanceHook(hook) {CODE
LOWElectronJS/src/js/vue.global.js2431 function setCurrentRenderingInstance(instance) {CODE
LOWElectronJS/src/js/vue.global.js3167 function normalizeSuspenseChildren(vnode) {CODE
LOWElectronJS/src/js/vue.global.js4889 function exposePropsOnRenderContext(instance) {CODE
LOWElectronJS/src/js/vue.global.js4903 function exposeSetupStateOnRenderContext(instance) {CODE
LOWElectronJS/src/js/vue.global.js9799 function patchStopImmediatePropagation(e, value) {CODE
LOWElectronJS/src/js/vue.global.js11028 function injectCompilerOptionsCheck(app) {CODE
LOWElectronJS/src/js/vue.global.js11363 function createConditionalExpression(test, consequent, alternate, newline = true) {CODE
LOWElectronJS/src/js/vue.global.js11506 function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) {CODE
LOWElectronJS/src/js/vue.global.js12792 function getConstantTypeOfHelperCall(value, context) {CODE
LOWElectronJS/src/js/vue.global.js12807 function getGeneratedPropsConstantType(node, context) {CODE
LOWElectronJS/src/js/vue.global.js13108 function createStructuralDirectiveTransform(name, fn) {CODE
LOWElectronJS/src/js/vue.global.js13491 function genExpressionAsPropertyKey(node, context) {CODE
LOWElectronJS/src/js/vue.global.js13703 function validateBrowserExpression(node, context, asParams = false, asRawStatements = false) {CODE
LOWElectronJS/src/js/vue.global.js13899 function createCodegenNodeForBranch(branch, keyIndex, context) {CODE
LOWElectronJS/src/js/vue.global.js13913 function createChildrenCodegenNode(branch, keyIndex, context) {CODE
LOWElectronJS/src/js/vue.global.js14996 function stringifyDynamicPropNames(props) {CODE
LOWElectronJS/src/taskGrid/global.js130function detectOperatingSystemAndArch() {CODE
LOWElectronJS/src/taskGrid/vue.js2271 function extractPropsFromVNodeData (CODE
LOWElectronJS/src/taskGrid/vue.js3038 function createFunctionalComponent (CODE
LOWElectronJS/src/taskGrid/vue.js3079 function cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {CODE
LOWElectronJS/src/taskGrid/vue.js3275 function createComponentInstanceForVnode (CODE
LOWElectronJS/src/taskGrid/vue.js5036 function resolveConstructorOptions (Ctor) {CODE
LOWElectronJS/src/taskGrid/vue.js6133 function removeAndInvokeRemoveHook (vnode, rm) {CODE
LOWElectronJS/src/taskGrid/vue.js7102 function getAndRemoveAttr (CODE
LOWElectronJS/src/taskGrid/vue.js7123 function getAndRemoveAttrByRegex (CODE
10 more matches not shown…
Deep Nesting99 hits · 68 pts
SeverityFileLineSnippetContext
LOWExamples/Sample Tasks with Python/desc_crawl.py65CODE
LOWExamples/Sample Tasks with Python/service_invoke.py13CODE
LOWExecuteStage/easyspider_executestage.py77CODE
LOWExecuteStage/easyspider_executestage.py241CODE
LOWExecuteStage/easyspider_executestage.py380CODE
LOWExecuteStage/easyspider_executestage.py440CODE
LOWExecuteStage/easyspider_executestage.py533CODE
LOWExecuteStage/easyspider_executestage.py573CODE
LOWExecuteStage/easyspider_executestage.py693CODE
LOWExecuteStage/easyspider_executestage.py789CODE
LOWExecuteStage/easyspider_executestage.py854CODE
LOWExecuteStage/easyspider_executestage.py932CODE
LOWExecuteStage/easyspider_executestage.py1025CODE
LOWExecuteStage/easyspider_executestage.py1107CODE
LOWExecuteStage/easyspider_executestage.py1167CODE
LOWExecuteStage/easyspider_executestage.py1646CODE
LOWExecuteStage/easyspider_executestage.py1837CODE
LOWExecuteStage/easyspider_executestage.py2031CODE
LOWExecuteStage/utils.py63CODE
LOWExecuteStage/utils.py116CODE
LOWExecuteStage/utils.py182CODE
LOWExecuteStage/utils.py203CODE
LOWExecuteStage/utils.py307CODE
LOWExecuteStage/utils.py349CODE
LOWExecuteStage/utils.py409CODE
LOWExecuteStage/utils.py445CODE
LOWExecuteStage/utils.py117CODE
LOWExecuteStage/utils.py638CODE
LOWExecuteStage/utils.py694CODE
LOWExecuteStage/myChrome.py69CODE
LOWExecuteStage/myChrome.py142CODE
LOWExecuteStage/myChrome.py186CODE
LOWExecuteStage/myChrome.py225CODE
LOWExecuteStage/myChrome.py314CODE
LOWExecuteStage/easyspider_executestage_single.py106CODE
LOWExecuteStage/easyspider_executestage_single.py134CODE
LOWExecuteStage/easyspider_executestage_single.py203CODE
LOWExecuteStage/easyspider_executestage_single.py251CODE
LOWExecuteStage/easyspider_executestage_single.py298CODE
LOWExecuteStage/easyspider_executestage_single.py368CODE
LOWExecuteStage/easyspider_executestage_single.py740CODE
LOWExecuteStage/easyspider_executestage_single.py832CODE
LOWExecuteStage/undetected_chromedriver_ES/reactor.py66CODE
LOWExecuteStage/undetected_chromedriver_ES/__init__.py847CODE
LOWExecuteStage/undetected_chromedriver_ES/cdp.py15CODE
LOWExecuteStage/undetected_chromedriver_ES/patcher.py285CODE
LOWExecuteStage/undetected_chromedriver_ES/patcher.py383CODE
LOWExecuteStage/undetected_chromedriver_ES/devtool.py103CODE
LOWExecuteStage/undetected_chromedriver_ES/devtool.py110CODE
LOWExecuteStage/undetected_chromedriver_ES/devtool.py116CODE
LOWExecuteStage/undetected_chromedriver_ES/devtool.py131CODE
LOW…EasySpider_windows_x64/Code/easyspider_executestage.py76CODE
LOW…EasySpider_windows_x64/Code/easyspider_executestage.py236CODE
LOW…EasySpider_windows_x64/Code/easyspider_executestage.py375CODE
LOW…EasySpider_windows_x64/Code/easyspider_executestage.py435CODE
LOW…EasySpider_windows_x64/Code/easyspider_executestage.py515CODE
LOW…EasySpider_windows_x64/Code/easyspider_executestage.py555CODE
LOW…EasySpider_windows_x64/Code/easyspider_executestage.py675CODE
LOW…EasySpider_windows_x64/Code/easyspider_executestage.py771CODE
LOW…EasySpider_windows_x64/Code/easyspider_executestage.py836CODE
39 more matches not shown…
Unused Imports70 hits · 66 pts
SeverityFileLineSnippetContext
LOWExamples/Sample Tasks with Python/desc_crawl.py2CODE
LOWExamples/Sample Tasks with Python/desc_crawl.py3CODE
LOWExamples/Sample Tasks with Python/desc_crawl.py5CODE
LOWExamples/Sample Tasks with Python/desc_crawl.py7CODE
LOWExamples/Sample Tasks with Python/desc_crawl.py11CODE
LOWExamples/Sample Tasks with Python/desc_crawl.py14CODE
LOWExamples/Sample Tasks with Python/desc_crawl.py15CODE
LOWExamples/Sample Tasks with Python/service_invoke.py2CODE
LOWExamples/Sample Tasks with Python/author_crawl.py2CODE
LOWExamples/Sample Tasks with Python/author_crawl.py3CODE
LOWExamples/Sample Tasks with Python/author_crawl.py5CODE
LOWExamples/Sample Tasks with Python/author_crawl.py7CODE
LOWExamples/Sample Tasks with Python/author_crawl.py11CODE
LOWExamples/Sample Tasks with Python/author_crawl.py14CODE
LOWExamples/Sample Tasks with Python/author_crawl.py15CODE
LOWExecuteStage/fl_beta.py6CODE
LOWExecuteStage/easyspider_executestage.py3CODE
LOWExecuteStage/easyspider_executestage.py18CODE
LOWExecuteStage/easyspider_executestage.py19CODE
LOWExecuteStage/easyspider_executestage.py33CODE
LOWExecuteStage/easyspider_executestage.py2628CODE
LOWExecuteStage/utils.py18CODE
LOWExecuteStage/utils.py22CODE
LOWExecuteStage/package_size.py1CODE
LOWExecuteStage/llm_beta.py3CODE
LOWExecuteStage/myChrome.py1CODE
LOWExecuteStage/myChrome.py2CODE
LOWExecuteStage/myChrome.py3CODE
LOWExecuteStage/myChrome.py5CODE
LOWExecuteStage/myChrome.py6CODE
LOWExecuteStage/myChrome.py9CODE
LOWExecuteStage/myChrome.py10CODE
LOWExecuteStage/myChrome.py12CODE
LOWExecuteStage/myChrome.py13CODE
LOWExecuteStage/easyspider_executestage_single.py9CODE
LOWExecuteStage/easyspider_executestage_single.py10CODE
LOWExecuteStage/easyspider_executestage_single.py13CODE
LOWExecuteStage/easyspider_executestage_single.py14CODE
LOWExecuteStage/easyspider_executestage_single.py15CODE
LOWExecuteStage/undetected_chromedriver_ES/__init__.py17CODE
LOWExecuteStage/undetected_chromedriver_ES/__init__.py35CODE
LOWExecuteStage/undetected_chromedriver_ES/webelement.py3CODE
LOW.temp_to_pub/compress.py2CODE
LOW.temp_to_pub/compress.py4CODE
LOW.temp_to_pub/compress.py7CODE
LOW.temp_to_pub/compress.py10CODE
LOW.temp_to_pub/compress.py11CODE
LOW…EasySpider_windows_x64/Code/easyspider_executestage.py3CODE
LOW…EasySpider_windows_x64/Code/easyspider_executestage.py18CODE
LOW…EasySpider_windows_x64/Code/easyspider_executestage.py19CODE
LOW…EasySpider_windows_x64/Code/easyspider_executestage.py33CODE
LOW…EasySpider_windows_x64/Code/easyspider_executestage.py2470CODE
LOW.temp_to_pub/EasySpider_windows_x64/Code/utils.py18CODE
LOW.temp_to_pub/EasySpider_windows_x64/Code/utils.py22CODE
LOW.temp_to_pub/EasySpider_windows_x64/Code/myChrome.py1CODE
LOW.temp_to_pub/EasySpider_windows_x64/Code/myChrome.py2CODE
LOW.temp_to_pub/EasySpider_windows_x64/Code/myChrome.py3CODE
LOW.temp_to_pub/EasySpider_windows_x64/Code/myChrome.py5CODE
LOW.temp_to_pub/EasySpider_windows_x64/Code/myChrome.py6CODE
LOW.temp_to_pub/EasySpider_windows_x64/Code/myChrome.py9CODE
10 more matches not shown…
Over-Commented Block67 hits · 64 pts
SeverityFileLineSnippetContext
LOWExtension/manifest_v3/src/background.ts1//此变量用于监听是否加载了新的页面(包括新窗口打开),如果是,增加变量值,用于传回后台。COMMENT
LOWExtension/manifest_v3/src/background.ts21// }COMMENT
LOWExtension/manifest_v3/src/background.ts41// let tmsg = request.msg;COMMENT
LOWExtension/manifest_v3/src/content-scripts/main.js161// window.addEventListener("beforeunload", function(event) {COMMENT
LOWExecuteStage/easyspider_executestage.py1961 # content = pytesseract.image_to_string(image, lang='chi_sim+eng')COMMENT
LOWExecuteStage/utils.py141 return on_pressCOMMENT
LOWExecuteStage/utils.py161 press_time["is_pressed"] = FalseCOMMENT
LOWExecuteStage/utils.py441 with open(file_name, 'w', encoding='utf-8') as f:COMMENT
LOWExecuteStage/utils.py461 # try:COMMENT
LOWExecuteStage/utils.py481 # first = TrueCOMMENT
LOWExecuteStage/utils.py501 # cell = ""COMMENT
LOWExecuteStage/utils.py521 # if not first: # 如果不是第一行,需要转换数据类型COMMENT
LOWExecuteStage/myChrome.py41 # iframes = super().find_elements(By.CSS_SELECTOR, "iframe")COMMENT
LOWExecuteStage/myChrome.py101 self.iframe_env = TrueCOMMENT
LOWExecuteStage/myChrome.py121 # super().switch_to.default_content()COMMENT
LOWExecuteStage/undetected_chromedriver_ES/__init__.py661 # let objectToInspect = window,COMMENT
LOW.temp_to_pub/compress.py141 # os.remove(file_name)COMMENT
LOW…EasySpider_windows_x64/Code/easyspider_executestage.py1901 # self.print_and_log("Failed to recognize Chinese, try to recognize English only")COMMENT
LOW.temp_to_pub/EasySpider_windows_x64/Code/utils.py141 return on_pressCOMMENT
LOW.temp_to_pub/EasySpider_windows_x64/Code/utils.py161 press_time["is_pressed"] = FalseCOMMENT
LOW.temp_to_pub/EasySpider_windows_x64/Code/utils.py401 # # 准备新数据COMMENT
LOW.temp_to_pub/EasySpider_windows_x64/Code/utils.py421 # if first:COMMENT
LOW.temp_to_pub/EasySpider_windows_x64/Code/utils.py441 # if num_rows > 5000:COMMENT
LOW.temp_to_pub/EasySpider_windows_x64/Code/utils.py461COMMENT
LOW.temp_to_pub/EasySpider_windows_x64/Code/utils.py481 # value = float(value)COMMENT
LOW.temp_to_pub/EasySpider_windows_x64/Code/myChrome.py41 # iframes = super().find_elements(By.CSS_SELECTOR, "iframe")COMMENT
LOW.temp_to_pub/EasySpider_windows_x64/Code/myChrome.py101 self.iframe_env = TrueCOMMENT
LOW.temp_to_pub/EasySpider_windows_x64/Code/myChrome.py121 # super().switch_to.default_content()COMMENT
LOW…b/EasySpider_Linux_x64/Code/easyspider_executestage.py1901 # self.print_and_log("Failed to recognize Chinese, try to recognize English only")COMMENT
LOWElectronJS/server.js261 // // Set the max file sizeCOMMENT
LOWElectronJS/server.js281 // if (!err) {COMMENT
LOWElectronJS/main.js61let execute_path = "";COMMENT
LOWElectronJS/main.js121COMMENT
LOWElectronJS/EasySpider_zh/background.js1//此变量用于监听是否加载了新的页面(包括新窗口打开),如果是,增加变量值,用于传回后台。COMMENT
LOWElectronJS/EasySpider_zh/background.js21// nowTabIndex = tabList.indexOf(nowTabId);COMMENT
LOWElectronJS/EasySpider_zh/background.js41// tmsg.tabIndex = nowTabIndex; //赋值当前tab的idCOMMENT
LOWElectronJS/EasySpider_zh/content-scripts/main.js881 // descendant combinators, which is not what we want.COMMENT
LOWElectronJS/EasySpider_zh/content-scripts/main.js1021COMMENT
LOWElectronJS/EasySpider_zh/content-scripts/main.js1161 // Support: IE 9 - 11+, Edge 12 - 18+COMMENT
LOWElectronJS/EasySpider_zh/content-scripts/main.js5641 // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1COMMENT
LOWElectronJS/EasySpider_zh/content-scripts/main.js6421COMMENT
LOWElectronJS/EasySpider_zh/content-scripts/main.js6441 // Spec requires trimming whitespace for custom properties (gh-4926).COMMENT
LOWElectronJS/EasySpider_zh/content-scripts/main.js12921 callbacks.length = 0;COMMENT
LOWElectronJS/EasySpider_zh/content-scripts/main.js13661function resetSchedulerState() {COMMENT
LOWElectronJS/EasySpider_zh/content-scripts/main.js14061 // transform component v-model data into props & eventsCOMMENT
LOWElectronJS/EasySpider_zh/content-scripts/main.js16481 // happens because browsers fire microtask ticks between event propagation.COMMENT
LOWElectronJS/EasySpider_en/background.js1//此变量用于监听是否加载了新的页面(包括新窗口打开),如果是,增加变量值,用于传回后台。COMMENT
LOWElectronJS/EasySpider_en/background.js21// nowTabIndex = tabList.indexOf(nowTabId);COMMENT
LOWElectronJS/EasySpider_en/background.js41// tmsg.tabIndex = nowTabIndex; //赋值当前tab的idCOMMENT
LOWElectronJS/EasySpider_en/content-scripts/main.js881 // descendant combinators, which is not what we want.COMMENT
LOWElectronJS/EasySpider_en/content-scripts/main.js1021COMMENT
LOWElectronJS/EasySpider_en/content-scripts/main.js1161 // Support: IE 9 - 11+, Edge 12 - 18+COMMENT
LOWElectronJS/EasySpider_en/content-scripts/main.js5641 // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1COMMENT
LOWElectronJS/EasySpider_en/content-scripts/main.js6421COMMENT
LOWElectronJS/EasySpider_en/content-scripts/main.js6441 // Spec requires trimming whitespace for custom properties (gh-4926).COMMENT
LOWElectronJS/EasySpider_en/content-scripts/main.js12921 callbacks.length = 0;COMMENT
LOWElectronJS/EasySpider_en/content-scripts/main.js13661function resetSchedulerState() {COMMENT
LOWElectronJS/EasySpider_en/content-scripts/main.js14061 // transform component v-model data into props & eventsCOMMENT
LOWElectronJS/EasySpider_en/content-scripts/main.js16481 // happens because browsers fire microtask ticks between event propagation.COMMENT
LOW…/selenium-webdriver-bidi-webExtension/extensionData.js1// Licensed to the Software Freedom Conservancy (SFC) under oneCOMMENT
7 more matches not shown…
Cross-File Repetition8 hits · 40 pts
SeverityFileLineSnippetContext
HIGHExecuteStage/easyspider_executestage.py0object.defineproperty(navigator, 'webdriver', { get: () => undefined })STRING
HIGH…EasySpider_windows_x64/Code/easyspider_executestage.py0object.defineproperty(navigator, 'webdriver', { get: () => undefined })STRING
HIGH…b/EasySpider_Linux_x64/Code/easyspider_executestage.py0object.defineproperty(navigator, 'webdriver', { get: () => undefined })STRING
HIGHExecuteStage/myCode.py0这是一个示例代码文件,可以直接在这里写python代码,然后在程序中的exec操作中调用。如果此文件名称为mycode.py,请将此文件放置在easyspider程序目录下(和data/文件夹同级),那么在程序中的exec操作中可以直接写oSTRING
HIGH.temp_to_pub/EasySpider_windows_x64/myCode.py0这是一个示例代码文件,可以直接在这里写python代码,然后在程序中的exec操作中调用。如果此文件名称为mycode.py,请将此文件放置在easyspider程序目录下(和data/文件夹同级),那么在程序中的exec操作中可以直接写oSTRING
HIGH.temp_to_pub/EasySpider_MacOS/myCode.py0这是一个示例代码文件,可以直接在这里写python代码,然后在程序中的exec操作中调用。如果此文件名称为mycode.py,请将此文件放置在easyspider程序目录下(和data/文件夹同级),那么在程序中的exec操作中可以直接写oSTRING
HIGH.temp_to_pub/EasySpider_Linux_x64/myCode.py0这是一个示例代码文件,可以直接在这里写python代码,然后在程序中的exec操作中调用。如果此文件名称为mycode.py,请将此文件放置在easyspider程序目录下(和data/文件夹同级),那么在程序中的exec操作中可以直接写oSTRING
HIGH.temp_to_pub/EasySpider_windows_x32/myCode.py0这是一个示例代码文件,可以直接在这里写python代码,然后在程序中的exec操作中调用。如果此文件名称为mycode.py,请将此文件放置在easyspider程序目录下(和data/文件夹同级),那么在程序中的exec操作中可以直接写oSTRING
AI Slop Vocabulary11 hits · 22 pts
SeverityFileLineSnippetContext
MEDIUM.temp_to_pub/EasySpider_windows_x64/tasks/30.json1{"id": 30, "name": "WIKI", "url": "https://en.wikipedia.org/wiki/World_Wide_Web", "links": "https://en.wikipedia.org/wikCODE
MEDIUM.temp_to_pub/EasySpider_windows_x64/tasks/31.json1{"id": 31, "name": "WIKI WWW", "url": "https://en.wikipedia.org/wiki/World_Wide_Web", "links": "https://en.wikipedia.orgCODE
MEDIUM.temp_to_pub/EasySpider_MacOS/Sample Tasks/30.json1{"id": 30, "name": "WIKI", "url": "https://en.wikipedia.org/wiki/World_Wide_Web", "links": "https://en.wikipedia.org/wikCODE
MEDIUM.temp_to_pub/EasySpider_MacOS/Sample Tasks/31.json1{"id": 31, "name": "WIKI WWW", "url": "https://en.wikipedia.org/wiki/World_Wide_Web", "links": "https://en.wikipedia.orgCODE
MEDIUM.temp_to_pub/EasySpider_Linux_x64/tasks/30.json1{"id": 30, "name": "WIKI", "url": "https://en.wikipedia.org/wiki/World_Wide_Web", "links": "https://en.wikipedia.org/wikCODE
MEDIUM.temp_to_pub/EasySpider_Linux_x64/tasks/31.json1{"id": 31, "name": "WIKI WWW", "url": "https://en.wikipedia.org/wiki/World_Wide_Web", "links": "https://en.wikipedia.orgCODE
MEDIUM.temp_to_pub/EasySpider_windows_x32/tasks/30.json1{"id": 30, "name": "WIKI", "url": "https://en.wikipedia.org/wiki/World_Wide_Web", "links": "https://en.wikipedia.org/wikCODE
MEDIUM.temp_to_pub/EasySpider_windows_x32/tasks/31.json1{"id": 31, "name": "WIKI WWW", "url": "https://en.wikipedia.org/wiki/World_Wide_Web", "links": "https://en.wikipedia.orgCODE
MEDIUMElectronJS/tasks/30.json1{"id": 30, "name": "WIKI", "url": "https://en.wikipedia.org/wiki/World_Wide_Web", "links": "https://en.wikipedia.org/wikCODE
MEDIUMElectronJS/tasks/31.json1{"id": 31, "name": "WIKI WWW", "url": "https://en.wikipedia.org/wiki/World_Wide_Web", "links": "https://en.wikipedia.orgCODE
LOWElectronJS/src/js/vue.global.js6784 // #1689 For inside suspense + suspense resolved case, just call itCOMMENT
Slop Phrases6 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMExecuteStage/easyspider_executestage.py2624 # print("Passing the Cloudflare verification mode is sometimes unstable. If the verification fails, you needSTRING
MEDIUM…EasySpider_windows_x64/Code/easyspider_executestage.py2467 # print("Passing the Cloudflare verification mode is sometimes unstable. If the verification fails, you needSTRING
MEDIUM…b/EasySpider_Linux_x64/Code/easyspider_executestage.py2467 # print("Passing the Cloudflare verification mode is sometimes unstable. If the verification fails, you needSTRING
LOWElectronJS/update_chrome.py270 print("Done and don't forget to generate executestage EXEcutable program!")CODE
LOWElectronJS/src/js/vue.global.js8338 // #2078 make sure to merge refs during the clone instead of overwriting itCOMMENT
MEDIUMElectronJS/src/taskGrid/FlowChart.html428import emotlib # Now you can use emotlib libraryCODE
Overly Generic Function Names5 hits · 5 pts
SeverityFileLineSnippetContext
LOWElectronJS/EasySpider_zh/content-scripts/main.js4132function getData( data ) {CODE
LOWElectronJS/EasySpider_zh/content-scripts/main.js14668function getData(data, vm) {CODE
LOWElectronJS/EasySpider_en/content-scripts/main.js4132function getData( data ) {CODE
LOWElectronJS/EasySpider_en/content-scripts/main.js14668function getData(data, vm) {CODE
LOWElectronJS/src/taskGrid/vue.js4741 function getData (data, vm) {CODE
Fake / Example Data4 hits · 4 pts
SeverityFileLineSnippetContext
LOWElectronJS/EasySpider_zh/content-scripts/main.js16393 key === 'placeholder' &&CODE
LOWElectronJS/EasySpider_en/content-scripts/main.js16393 key === 'placeholder' &&CODE
LOWElectronJS/src/taskGrid/vue.js6768 key === 'placeholder' && value !== '' && !el.__iephCODE
LOWElectronJS/src/taskGrid/element-ui/index.js1!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("vue")):"function"==typeof defCODE
Modern Structural Boilerplate2 hits · 2 pts
SeverityFileLineSnippetContext
LOWExecuteStage/undetected_chromedriver_ES/reactor.py10logger = logging.getLogger(__name__)CODE
LOWExecuteStage/undetected_chromedriver_ES/patcher.py21logger = logging.getLogger(__name__)CODE
Structural Annotation Overuse3 hits · 2 pts
SeverityFileLineSnippetContext
LOW…ve Captcha in EasySpider with CapSolver Integration.md394### Step 1: Design Your Task in EasySpiderSTRING
LOW…ve Captcha in EasySpider with CapSolver Integration.md406### Step 2: Create the CapSolver Helper ScriptSTRING
LOW…ve Captcha in EasySpider with CapSolver Integration.md503### Step 3: Configure EasySpider to Use the ScriptSTRING
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWExecuteStage/undetected_chromedriver_ES/__init__.py104CODE