-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
代码方面建议及问题若干 #42
Comments
先回答一下马上就能回答的问题,至于代码相关的修改和重构的问题,最近科研任务繁重,可能需要慢慢来改了,感谢认真审查代码! [建议] 打包的EasySpider_0.3.0_Beta_windows_amd64.7z中,Chrome的Installer大概是不需要的,压缩包能节省100MB。 OK [建议] 构建流程有点散乱和复杂,虽然有几份自述,但还是不太懂。 [建议] 建议加一个npm run start_direct的.cmd文件。 OK [问题] start_direct后,点击启动任务会报错,不确定放错了什么。或者是否不打包就不能运行,缺少相关结构。 少了chrome_64文件夹内的execute.bat文件,没写到自述里是我的问题。 [建议] 为VSCode调试命令定义任务文件。 我使用的是WebStorm,没用VSCode,可以考虑以后做。 [建议] Chrome及chromedriver的下载和环境检查,建议脚本化,至少向导脚本。 以后做 [疑问] https://chromedriver.storage.googleapis.com/index.html?path=113.0.5672.63/ 只提供win32,不确定是否可以及如何用。 [问题] package_*.cmd有一行没用%temp% [疑问] ElectronJS/package_win32.cmd不需要检测UAC吗。不确定为什么检测。 [问题] clean bat多处rmdir/s丢失空格。 [疑问] 不确定作用,clean为什么还move文件。 [建议] 32和64位bat是否能合二为一。是否该写成python或nodejs脚本,既然依赖其环境。 [问题] out输出的tasks目录是空的,是否脚本流程未覆盖。 [疑问] EasySpider\ElectronJS\out\EasySpider-win32-x64目录名令人困惑。 [建议] 提供功能及环境自检界面。如Chrome和chromedriver等文件是否备好、版本号,要使用OCR识别功能,你需要安装Tesseract-OCR并将其添加到环境变量PATH中等。 [疑问] electron-forge make后的文件,是一个自动安装的安装包吗。EasySpider-0.3.0-full.nupkg又是做什么。 [问题] EasySpider-0.3.0 Setup.exe 自动安装期间似乎该程序被启动多次,卸载时似乎程序会被启动。 我的打包程序本身不需要setup,如果是setup的chrome那是chrome的问题,如果是make之后的setup,我自己其实从来没有make过,因为package之后就可以直接用,不需要再生成setup了。 [建议] ElectronJS\package.json "license": "CC0-1.0", 疑似有误。 [建议] 无需自带vs_BuildTools.exe,提供 https://aka.ms/vs/15/release/vs_buildtools.exe [疑问] 步骤中的npm install @electron-forge/cli能否省略,package.json中定义不够吗。 [建议] optional: npm run make没解释作用。Package Instruction与For windows x64的打包指令存在重叠。 [疑问] EasySpider.bat只是启动exe,好像不太有用。 [疑问] 25KB EasySpider.exe的构建方法是否已开源。 界面方面的建议需要一段时间慢慢改,就不一一回答了。 [低优先级] 记住语言和语言切换。 任务列表 URL栏不够宽。 [建议] 个人倾向URL均称“网址”。 任务列表 页面,看到双重的垂直滚动条。大概垂直分辨率相关。 任务信息 页面,左边距明显大于右边距,并产生水平滚动条。大概分辨率相关。 任务流程修改 页面缺少右边距。或许垂直滚动条占位了。 tasks目录中的文件序号,与任务列表的ID(实则序号)似乎是不对应的,可能误导、误覆盖等。可以考虑不用数字作文件名,选一种类似UUID的方案? 任务列表是按照修改时间排序的,和tasks文件的序号无关。 EasySpider_0.3.0_Beta中的任务文件,中文是直接写的。git库中的,是\u形式。后者不容易查找。 新版本已经不会有这个问题,需要修改下文件内容了。 [低优先级] 任务文件json,如果有手动查看和编辑的预期,自带缩进也许会好一些。体积和处理复杂度会轻微增加。 任务文件中节点的nodeName,也许不利于跨语言交流和交换。是否考虑未修改的步骤名称被允许或默认留空。例如“Bilibili粉丝”任务,修改任务流程,看到的是"Open Page" "Loop"等英文步骤。 这个主要是英文设计任务之后中文打开才会出现的问题,一般人应该也不会这么做。 代码写的确实乱,当时只是想出个demo所以没有特别规范,没想到真的有朋友认真看代码,真的十分感谢! |
package_win64.cmd 的
感觉不应该……是被占用了吗,或者文件夹权限不对。 其他问题我会再慢慢看。
那么目前界面有点误导。ID改成序号/No.?还是建议任务文件名格式再考虑一下。
考虑到外国贡献者可能要查看如自带的中文的任务,以及中外互相分享任务用于调试和参考。会不利于查看,增加翻译/汉化的步骤。代码中的中文注释也是如此,后期需要考虑怎么处理。
有需求并且感兴趣。看到代码在快速发展,所以先提上来,考虑到我自己改会代码冲突和重复作业(已发生一点点),以及构建和使用过程尚未理顺。
|
文件夹权限问题也许是我的特定问题,不一定会发生在其他人的PC上。
那么整个流程就会执行四次,分别进入以上四个页面。 |
理解,但如果有打算吸引海外开发者,中文注释或许成为一个障碍……如果没想那么远可以先维持现状。 运行6.json( Loading stealth.min.js -------Retrying------- Traceback (most recent call last): During handling of the above exception, another exception occurred: Traceback (most recent call last): |
id已经修改为No.,6.json是0.2.0生成的任务,v0.3.0 Beta版没有处理兼容性问题所以运行不了,我在Release时候已经删掉了这些旧文件,代码里留着只是为了备份用,现在已经在json文件里写了版本号以用来解决兼容性问题。 |
懂了,我是从ElectronJS/tasks目录复制的,以为那是存储库。 config.json初始带有 |
Releases 0.3.0目前只有一个Windows x64 Beta版本,如果指的是0.2.0各个版本的tasks文件夹,那么是通用的没区别。 |
如果能提供数据库设计操作接口就更好了,当然也可以读取excel文件写入数据库,赞作者,项目做的好 |
想问下数据采集完,存储在哪了? |
Data文件夹内,请看完B站教程,很多问题都有解答。 |
@NaiboWang |
@NaiboWang |
谢谢建议,3年前写这几个前端页面的时候没想过以后会越来越复杂所有没用包管理器,不过以后为了代码规范化会考虑。 |
用Electron是为了跨平台所有操作系统通用,暂时不考虑换,除非有更好的跨平台框架。 |
我觉得需要用正则表达,让爬的内容更加符合需求 |
软件支持JavaScript,可以直接写JS命令来替换文本内容。 |
导入MySQL数据库功能的版本已发布,欢迎使用。 |
续#25。构建代码方面。
npm run start_direct
的.cmd文件。%temp%
rmdir/s
丢失空格。EasySpider\ElectronJS\out\EasySpider-win32-x64
目录名令人困惑。要使用OCR识别功能,你需要安装Tesseract-OCR并将其添加到环境变量PATH中
等。electron-forge make
后的文件,是一个自动安装的安装包吗。EasySpider-0.3.0-full.nupkg
又是做什么。"license": "CC0-1.0",
疑似有误。npm install @electron-forge/cli
能否省略,package.json中定义不够吗。optional: npm run make
没解释作用。Package Instruction与For windows x64的打包指令存在重叠。界面方面:
The text was updated successfully, but these errors were encountered: