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
记录下待开发的功能,大家也可以来提想要的功能 #25
Comments
刚刚接触,代码上的初步意见: |
感谢,都是非常好的建议。 |
能不能考虑把采集到的内容直接发布到常用的网站类型中,谢谢! |
这属于衍生需求,有很多工具可以做,参考:https://www.zhihu.com/question/52240701 因此暂时不考虑。 |
加上打印日志功能 |
1.列表页字段和详情页的字段能对应上; |
采集下来数据的CSV文件的列表头(对应于任务信息当中输出参数的参数名称)的各个字段名称,能否根据采集者的意愿在任务中做配置,从而自动修改? |
能不能说详细一点什么叫做自动修改,现在各个字段的名称是可以手动修改的。 |
所谓自动,就是我们事先在任务当中配置好该怎么修改,之后,执行完任务,采集下来的数据已经是按照我们事先的设定改好了,而不需要我们去手动在CSV或Excel文件中修改列表头,这就是我所谓的自动。 你提到的现在可以手动修改是指在任务配置过程中就修改好了是吗?如果是在任务配置过程中修改就修改好了,逻辑上就已经是我讲的自动修改的意思了。 我之前用八爪鱼用的很多。八爪鱼当中,列表头的字段名称是可以按照采集者的想法进行任意修改的。你的视频我没时间看。我是昨天一边做别的事,一边一口气听完的,中文的听了16集。软件没上手练,界面可能不熟悉。因为没听到说可以改列表头的这个说法,所以我以为列表头不能在任务配置文件中改呢。 |
表头可以在设计时改。 |
作者您好,我想提一个关于对 采集到的数据处理的一个 小建议 |
谢谢建议,这个程序设置的初衷是为那些不会写代码的朋友准备的,没想到发布后会有很多人想要写入数据库这种程序员级别的操作。 因为CSV转DB或者写入SQL数据库这个操作已经有很多开源实现,如:https://github.com/simonw/csvs-to-sqlite 因此这个功能属于边缘功能,大家如果想写入数据库总会找到办法,因此这个功能暂时不会考虑开发。 我倒希望有朋友能提交Pull Request,帮我一起完善这个软件,很遗憾发布了一个多月还没有有效的PR提交,一个人维护一个项目实在有些力不从心,将来我个人的重点也会主要集中在核心功能的开发上,至于写入数据库这种边缘功能,期待有朋友帮我做。 谢谢建议~ |
目前发现还是变量这块不太行(如果实现了,麻烦也告知一下)
再就是,编辑器部分建议优化为可以拖动那种操作,虽然目前也够用,但是第一次上手还是不太符合直觉 |
能支持下载网页中的文件么?例如PDF |
最新版本特性里就写了可以下载pdf…… |
不好意思,只注意看教学视频了。 另外还有一个建议,对于采集多个页面文章的情况下,默认会把文本合并到输出的csv文件里。那么能否在提取数据的设置里增加一项用户自定义分隔项,例如我可以把每篇文章的文本用<|endoftext|>分隔。 |
这个在提取数据操作前用JS操作一下就行了,可以参考下面这个视频: |
这样试了不行: 这个需求抽象来说就是: |
先找到你的
然后把上面自定义操作的名称改成和上面“提取页面文本”操作里一样的字段名称,如 |
这个办法生效,就是它还是会在csv首行生成一个同名列。如果后续需要处理,例如使用pandas.read,还需要人工去删除一下。 |
OK,这个bug会在下一个版本修复。 |
搞个无头模式,最好能docker运行 |
无头模式现在就有。 |
能不能加个关闭当前标签页,我点开链接都是新的标签页,导致没法后退,循环立马就断了 |
没法后退导致循环断不知道你是怎么设计的,理论上不太可能。 如果想关闭标签页,添加自定义操作,命令值为: |
把你的任务文件发我邮箱:naibowang@foxmail.com,我去帮你看下 |
【能否直接增加多关键词判断中针对当前循环项的JavaScript指令功能】 群主在github上给出的一个中国地震台网表格案例(https://github.com/NaiboWang/EasySpider/wiki/Example-of-JavaScript-instruction-for-the-current-iteration-in-a-conditional-statement#%E4%B8%AD%E5%9B%BD%E5%9C%B0%E9%9C%87%E5%8F%B0%E7%BD%91%E8%A1%A8%E6%A0%BC%E6%A1%88%E4%BE%8B) 这个例子给出了采集表格中第五项深度字段包含“10”的条目,需要在循环中添加判断条件,并将条件设置为如下命令: 但是,如果要采集表格中第五项深度字段包含“10”或“14”或“16”或“17”或“22”的条目(或更多的关键词),下一版本能否直接支持呢(例如关键词都放在数组)? 另外,在当前的0.6.0版本中,如果用JavaScript,下面的代码好像不能直接用于EasySpider的“代码/脚本内容”下方的文本框里。该如何实现呢? let keywords = ["10", "14", "16", "17", "22"];
let result = false;
for (let keyword of keywords) {
let xpathQuery = "./td[contains(., '" + keyword + "')]";
let nodes = document.evaluate(xpathQuery, arguments[0], null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
if (nodes.singleNodeValue) {
result = true;
break;
}
} |
已注意到你的需求,下个版本会添加,关于你的代码,我会新开一个issue单独讲解问题。 另外就是在Github不要叫我群主,叫作者就可以了。 |
非常感谢您! |
由衷的感谢大神作者! 刚才已经按照您提出的两种方法(includes与精确匹配)进行了调试,结果很完美! 热烈期待大神作者0.7.0版本的闪亮登场! 顺带问问,软件里“代码/脚本内容”下方的文本框,最多能容纳多少字符?我打算用EasySpider对材料科学下的某个子领域进行地平线扫描(子领域的中外文关键词比较多)。 |
我没有设置限制,理论上,这些文本框可以容纳数百万字符,但你可以去尝试是否有实际限制。 |
欧,太棒了,足够用了!!!今年的目标是:对材料科学下的某个子领域进行扫描,做成某领域前沿动态追踪快报,供老师们参考。 |
再次感谢大神作者.................... |
不客气 :) |
麻烦问下 有些界面元素无法选中 比如文心一言的发送按钮 |
百度文心一言属于大模型知识产权保护的内容,页面反爬手段很多,不容易直接处理,因此无法直接选中,建议使用JS等操作实现你想要的功能。 |
带滑块验证码的网站如何爬取? |
能添加步骤的注释功能吗?调试的时候会方便一点。或者已经有这个功能了吗? |
保存成功的提示能不能不覆盖左上角的面包屑,这样可以直接切换到任务的界面 |
目前不支持,只能修改操作本身名称,将来会实现此功能。 保存成功提示目前只能等待两秒,将来版本会缩短提示时间。 |
可以支持使用本地浏览器吗,新开的浏览器会触发反爬 |
不支持使用自己的浏览器,触发反爬的具体情况可以在另外创建issue描述清楚,有时间会帮忙看能不能解决或开发更新版本。 |
遇到一个问题,当爬取安全证书过期的时候,浏览器会自动跳出安全提示,在selenium里面有对网站安全问题进行忽略的指令,但在v0.6.0里目前找不到合适的方式,除了暂停后手动操作 |
可以下载源码后加上那条忽略指令试试行不行,如果可以也欢迎提交pull requests合并代码。 |
我们招标代理经常需要查询某单位或者某个人的证书真伪,在同一网站上输入不同的信息,纯机械劳动。 |
请仔细查阅文档和教程,从Excel读取的功能早就支持了。 |
双击操作什么时候能推出呢?或者说能不能提供自定义操作的代码 |
期待 docker 版本和 webUI 发布 |
有没有只爬API的办法啊,不开浏览器,我在现在的版本里没找到类似的操作,各位老师有知道的烦请告知一下哦,谢谢 |
能不能把容器化开发提上日程,现在环境受限,长期开机的也就arm小主机,win版不那么实用呀 |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
能不能给软件添加夜间模式啊,软件用着不错,但白色背景眼睛看着不舒服 |
构建Docker镜像和Web前端页面,可以远程访问,调用和执行服务器的爬虫任务;通过http调用的方式直接执行任务。 这个急需啊,现在做了计划任务。但同时只能跑一个任务。而且我不好判定当前的任务是否完成。现在只能租略的加机器来处理这个问题。最好是有一个主控,可以做所有的定时,把任务分发到相应的机器上,最好是Docker,这样部署在K8S里就可以按需自动加Pod了,现在浏览器是用的Docker做的。但是感觉效果不大。因为请求端也不能一台机器上同时跑。 还是要感谢大神提供这么优秀的作品。确实省了不少的时间来做采集。 |
采集图文文章时,innerHTML中希望可以加入一个,可以过滤标签的功能。希望能优化下:如这篇文章:https://www.dongchedi.com/article/7238974191096152615,只需要p标签和img,如果用之前视频教程的方式图文已经分开了。希望把一个字段里面有文本和img标签,这样另存doc方便些 |
以下功能会在有空的时候集中开发,大家有什么想要的功能也可以提issues留言,也欢迎大家fork之后帮我开发并提交pull request~
这部分是长期开发计划:
设计阶段通过outside:code.js来加载JS代码,并暴露交互接口方便和设计阶段的程序交互。
接入cms。
m3u8下载。
智能检测主要内容块并标记选中,思路:先滚动直到到达5次没有新内容加载,然后根据网页中的html内容,检测最大的块(子元素结构一致且数量最多的块)作为主要块,并自动选中子元素。
另一种思路:将整个网页每个节点的具体内容替换成长度的数字,然后分析这个树,根据字数长短寻找最佳块。占比面积最大的块是什么,标记清楚(硕士论文最早的一章)。
引入大语言模型,用于分析页面主要内容及识别验证码等,如将图片类验证码转换为文字后,用大语言模型/多模态模型过验证码。
构建Docker镜像和Web前端页面,可以远程访问,调用和执行服务器的爬虫任务;通过http调用的方式直接执行任务。
Oracle/Sql Server/MongoDB/Postgre数据库入库功能。
iframe层数设置。
循环和提取数据可以不止选择第一个元素。
底层框架可以考虑换playwright。
操纵扩展页面。
手机APP采集支持。
插件版本的EasySpider处理CloudFlare等极端网站。
任务列表排序和搜索。
拼接后给XPath最终是多少的提示。
插件测试,saveData()之前过一个全局插件用来处理数据为其他指定格式,如导入翻译插件(新导包的路径依赖怎么做),试一下是否可以将self.替换成其他的如browser.就可以完成指定任务。
命令行默认为local模式。
数据写入模式中增加文件已存在自动重命名,下载文件同名情况下重命名(多线程测试,keyboard参数测试,采集速度测试,两个相同任务ID同时下载文件测试)。
cookies池功能。
自定义操作新增“生成新数据行”,“清空字段值”,“退出程序”的操作。
自定义操作新增“切换标签页”,“关闭当前标签页”,“最大化窗口”的操作,循环文本列表同样需要处理标签页。
试运行JS增加提示返回值功能。
提取数据操作试运行可以实时显示多数类型的元素提取值。
字段内容示例值很长时自动换行。
MacOS下循环点击每个链接的Bug修复。
判断条件增加多个值,与或都行。
操作台增加OCR识别图片选项。
下载的图片名称可自定义,用于后续读取图片方便验证码识别等。
出一期设计阶段不用自带浏览器设计的教程(不能自动点击和输入文字)。
文心一言测试。
PDF生成。
文章生成doc,图片插入到文字中保持顺序不变。
保存任务提示时间减少。
操作备注。
循环的XPath也可以使用上层循环做拼接。
可选是否加载图片和视频以提高效率。
(Bug修复)打开网页默认应该打开的是链接池的第一个链接。
双击操作。
mysql数据去重bug:1054, unknown column '_id' in 'field list'.
字段设置为常量。
下载文件是否自动重命名选项。
The text was updated successfully, but these errors were encountered: