Open NaiboWang opened 1 year ago
想请问下那种点击按钮下载文件之后的保存路径可以指定吗
用带用户信息的浏览器设计和执行,更改浏览器下载目录即可。
作者你好,我发现这样子在调用任务时还是会恢复默认的下载路径,并不能下载到更改的路径内。并且在翻阅源码时发现在easyspider_executestage.py文件内有写默认下载路径在对应task中,但在实际使用中貌似并没有执行,貌似是bug。
源码里并没有指定文件下载目录,只指定了图片下载目录,因此下载的文件会存在系统默认的下载路径中,如下载文件夹。 如果使用的是带用户信息模式,理论上修改的下载位置会被保存下来,不会有问题。
作者您好,我经过反复测试之后发现确实有点小问题,希望您解惑。 为了防止干扰我重新下载了EasySpider_0.5.0_windows_x64版本,以下是我的测试步骤:
综上,程序在设计模式下修改的下载路径可以保存,但在调用任务时似乎会重置回默认路径,这个问题应该如何解决呢。
任务是否可以实现跨平台共享?或者可以提供一些任务模板,让user更容易操作实现需求?目前已经尝试拷贝移动过任务文件,程序打开任务界面就会报错~删除相关任务文件也无法恢复正常呢。
请问怎么让它执行完任务就退出进程呢,它现在执行完只会显示执行完成但是不退出,有些影响我的后续处理,有些奇怪为什么这个功能没有做进来呢
请问怎么让它执行完任务就退出进程呢,它现在执行完只会显示执行完成但是不退出,有些影响我的后续处理,有些奇怪为什么这个功能没有做进来呢
参考:
加上打印日志功能
cd /path/EasySplider/ && .../easyspider_executestage.exe --id... > log.txt可以输出日志
作者大牛,能否给出采集抖音短视频和微信公众号文章的例子。感谢!
数据写入模式中,能不能加入第三种模式:自动重命名(如果文件已存在,则自动重命名)——下载的EXCEL/txt/CSV数据文件,既不追加写入,也不要覆盖写入
例如: savedrecs savedrecs (1) savedrecs (2) savedrecs (3) savedrecs (4)
我在爬取WOS数据库时,程序本身没有爬取数据,但点击WOS数据库下载Excel文件时,EasySpider则不让chrome浏览器对重复excel文件进行自动重命名——我希望EasySpider不要干预chome对下载文件夹进行自动重命名。(如下两图)
EasySpider则不让chrome浏览器对重复excel文件进行自动重命名——我希望EasySpider不要干预chome对下载文件夹进行自动重命名。(如下两图)
这两句话没看懂,举个具体例子,EasySpider如何干预了重命名。
具体而言,就是我通过EasySpider,在WOS数据库里检索SCI文章,然后分批下载数据(WOS一次性下载记录有限制,每次1000条记录,超过后,就必须分多次下载)。EasySpider模拟所有点击过程,但浏览器最终下载的文件都被覆写了。
在这个过程红
EasySpider则不让chrome浏览器对重复excel文件进行自动重命名——我希望EasySpider不要干预chome对下载文件夹进行自动重命名。(如下两图)
这两句话没看懂,举个具体例子,EasySpider如何干预了重命名。
在这个过程中,我没让EasySpider采集数据,只是让它代替我点击并下载excel文件
EasySpider则不让chrome浏览器对重复excel文件进行自动重命名——我希望EasySpider不要干预chome对下载文件夹进行自动重命名。(如下两图)
这两句话没看懂,举个具体例子,EasySpider如何干预了重命名。
您哪里应该可以上web of science 吧,我把tasks文件发您呀
EasySpider则不让chrome浏览器对重复excel文件进行自动重命名——我希望EasySpider不要干预chome对下载文件夹进行自动重命名。(如下两图)
这两句话没看懂,举个具体例子,EasySpider如何干预了重命名。
就是说,WOS每次下载的excel文件,默认文件名都是savedrecs.xlsx,如果是下载多个文件,则后续的文件会被chome自动重命名为savedrecs(1).xlsx,savedrecs(2).xlsx.......
但我用EasySpider来模拟我的操作时,最后的wos下载的excel文件只有1个,文件名是savedrecs.xlsx——最早被下载的文件应该是被覆写了。
具体而言,就是我通过EasySpider,在WOS数据库里检索SCI文章,然后分批下载数据(WOS一次性下载记录有限制,每次1000条记录,超过后,就必须分多次下载)。EasySpider模拟所有点击过程,但浏览器最终下载的文件都被覆写了。
下载文件被覆盖和你说的数据写入模式的重命名不是一个概念,数据写入模式的重命名指的是爬的数据文件名称如果有重名自动重命名。
不过你的需求我已经了解,具体什么时候实现需要根据我的规划来定,请关注后续新版本的信息。
数据写入的内置两种模式,我都尝试了,但结果都是一样的——都被覆写了,只保留了最后被下载的那个excel数据文件。
多谢大神!非常感谢大神,期待大神的下一个版本..............0.6.0版本太强大了!!!!
OCR的功能建议增加配置项,如目前开源的umi-OCR就很好用,也支持CLI命令和API返回结果
【能否直接增加多关键词判断中针对当前循环项的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”的条目,需要在循环中添加判断条件,并将条件设置为如下命令: return document.evaluate("./td[5]", arguments[0], null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerText.indexOf("10") >= 0
但是,如果要采集表格中第五项深度字段包含“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;
}
}
【能否直接增加多关键词判断中针对当前循环项的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”的条目,需要在循环中添加判断条件,并将条件设置为如下命令: return document.evaluate("./td[5]", arguments[0], null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerText.indexOf("10") >= 0
但是,如果要采集表格中第五项深度字段包含“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不要叫我群主,叫作者就可以了。
非常感谢您!
【能否直接增加多关键词判断中针对当前循环项的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”的条目,需要在循环中添加判断条件,并将条件设置为如下命令: return document.evaluate("./td[5]", arguments[0], null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerText.indexOf("10") >= 0 但是,如果要采集表格中第五项深度字段包含“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对材料科学下的某个子领域进行地平线扫描(子领域的中外文关键词比较多)。
【能否直接增加多关键词判断中针对当前循环项的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”的条目,需要在循环中添加判断条件,并将条件设置为如下命令: return document.evaluate("./td[5]", arguments[0], null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerText.indexOf("10") >= 0 但是,如果要采集表格中第五项深度字段包含“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对材料科学下的某个子领域进行地平线扫描(子领域的中外文关键词比较多)。
我没有设置限制,理论上,这些文本框可以容纳数百万字符,但你可以去尝试是否有实际限制。
【能否直接增加多关键词判断中针对当前循环项的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”的条目,需要在循环中添加判断条件,并将条件设置为如下命令: return document.evaluate("./td[5]", arguments[0], null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerText.indexOf("10") >= 0 但是,如果要采集表格中第五项深度字段包含“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对材料科学下的某个子领域进行地平线扫描(子领域的中外文关键词比较多)。
我没有设置限制,理论上,这些文本框可以容纳数百万字符,但你可以去尝试是否有实际限制。
欧,太棒了,足够用了!!!今年的目标是:对材料科学下的某个子领域进行扫描,做成某领域前沿动态追踪快报,供老师们参考。
【能否直接增加多关键词判断中针对当前循环项的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”的条目,需要在循环中添加判断条件,并将条件设置为如下命令: return document.evaluate("./td[5]", arguments[0], null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerText.indexOf("10") >= 0 但是,如果要采集表格中第五项深度字段包含“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对材料科学下的某个子领域进行地平线扫描(子领域的中外文关键词比较多)。
我没有设置限制,理论上,这些文本框可以容纳数百万字符,但你可以去尝试是否有实际限制。
欧,太棒了,足够用了!!!今年的目标是:对材料科学下的某个子领域进行扫描,做成某领域前沿动态追踪快报,供老师们参考。
再次感谢大神作者....................
【能否直接增加多关键词判断中针对当前循环项的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”的条目,需要在循环中添加判断条件,并将条件设置为如下命令: return document.evaluate("./td[5]", arguments[0], null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerText.indexOf("10") >= 0 但是,如果要采集表格中第五项深度字段包含“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等操作实现你想要的功能。
带滑块验证码的网站如何爬取? NopeCHA只能通过国外的那种机器人验证
能添加步骤的注释功能吗?调试的时候会方便一点。或者已经有这个功能了吗?
保存成功的提示能不能不覆盖左上角的面包屑,这样可以直接切换到任务的界面
能添加步骤的注释功能吗?调试的时候会方便一点。或者已经有这个功能了吗?
目前不支持,只能修改操作本身名称,将来会实现此功能。
保存成功提示目前只能等待两秒,将来版本会缩短提示时间。
可以支持使用本地浏览器吗,新开的浏览器会触发反爬
可以支持使用本地浏览器吗,新开的浏览器会触发反爬
不支持使用自己的浏览器,触发反爬的具体情况可以在另外创建issue描述清楚,有时间会帮忙看能不能解决或开发更新版本。
遇到一个问题,当爬取安全证书过期的时候,浏览器会自动跳出安全提示,在selenium里面有对网站安全问题进行忽略的指令,但在v0.6.0里目前找不到合适的方式,除了暂停后手动操作
遇到一个问题,当爬取安全证书过期的时候,浏览器会自动跳出安全提示,在selenium里面有对网站安全问题进行忽略的指令,但在v0.6.0里目前找不到合适的方式,除了暂停后手动操作
可以下载源码后加上那条忽略指令试试行不行,如果可以也欢迎提交pull requests合并代码。
我们招标代理经常需要查询某单位或者某个人的证书真伪,在同一网站上输入不同的信息,纯机械劳动。 现在用ES能减少机械劳动,但是不同的单位或个人信息只能在任务执行-参数值内修改,还是不够快。 能否将需要查询的信息都按格式写在Excel表格中,然后任务能循环读取表格每行的信息,给出相应的结果。
我们招标代理经常需要查询某单位或者某个人的证书真伪,在同一网站上输入不同的信息,纯机械劳动。 现在用ES能减少机械劳动,但是不同的单位或个人信息只能在任务执行-参数值内修改,还是不够快。 能否将需要查询的信息都按格式写在Excel表格中,然后任务能循环读取表格每行的信息,给出相应的结果。
请仔细查阅文档和教程,从Excel读取的功能早就支持了。
双击操作什么时候能推出呢?或者说能不能提供自定义操作的代码
期待 docker 版本和 webUI 发布
有没有只爬API的办法啊,不开浏览器,我在现在的版本里没找到类似的操作,各位老师有知道的烦请告知一下哦,谢谢 -》 不是写js那种哈要不然用postman就行了
能不能把容器化开发提上日程,现在环境受限,长期开机的也就arm小主机,win版不那么实用呀
能不能把容器化开发提上日程,现在环境受限,长期开机的也就arm小主机,win版不那么实用呀
目前忙于科研没时间开发,你可以根据源代码自行部署,且还有Linux版本可以用,可以组个云服务器来部署Linux版。
建议加一个导出任务为独立py脚本的功能,可以在服务器灵活部署。最好可以还导出pip依赖
能不能给软件添加夜间模式啊,软件用着不错,但白色背景眼睛看着不舒服
构建Docker镜像和Web前端页面,可以远程访问,调用和执行服务器的爬虫任务;通过http调用的方式直接执行任务。
这个急需啊,现在做了计划任务。但同时只能跑一个任务。而且我不好判定当前的任务是否完成。现在只能租略的加机器来处理这个问题。最好是有一个主控,可以做所有的定时,把任务分发到相应的机器上,最好是Docker,这样部署在K8S里就可以按需自动加Pod了,现在浏览器是用的Docker做的。但是感觉效果不大。因为请求端也不能一台机器上同时跑。
还是要感谢大神提供这么优秀的作品。确实省了不少的时间来做采集。
采集图文文章时,innerHTML中希望可以加入一个,可以过滤标签的功能。希望能优化下:如这篇文章:https://www.dongchedi.com/article/7238974191096152615,只需要p标签和img,如果用之前视频教程的方式图文已经分开了。希望把一个字段里面有文本和img标签,这样另存doc方便些
希望能增加指定采集的网页窗口和关闭指定的网页窗口,采集完关闭新开的窗口/网页
能否增加一个这种功能: 对于设定好的字段检查是否有更新。如果更新了就抓取字段内容。没更新就不做任何动作,等下一次循环再检测。
好像这个软件不能读取抓取的数据文件的内容。所以好像不太容易实现这个功能。也有可能是我用的不熟练。这个软件已经能够实现了,就是我不会用而已。
需要爬取小说网站,想要一本小说一个页面保存一个txt,而且文件名可以是网页标题,现在的话是把所有小说都合并成一个文件了,可以新增这个功能吗
您好,您发送的邮件已收到,会尽快给你回复。
提取数据时发现xpath显示不正确,后来发现是 shadow dom ,用xpath无法抓,有解决方案吗
以下功能会在有空的时候集中开发,大家有什么想要的功能也可以提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等极端网站。
[x] 任务列表排序和搜索。
[x] 拼接后给XPath最终是多少的提示。
[ ] 插件测试,saveData()之前过一个全局插件用来处理数据为其他指定格式,如导入翻译插件(新导包的路径依赖怎么做),试一下是否可以将self.替换成其他的如browser.就可以完成指定任务。
[x] 命令行默认为local模式。
[ ] 数据写入模式中增加文件已存在自动重命名,下载文件同名情况下重命名(多线程测试,keyboard参数测试,采集速度测试,两个相同任务ID同时下载文件测试)。
[ ] cookies池功能。
[x] 自定义操作新增“生成新数据行”,“清空字段值”,“退出程序”的操作。
[ ] 自定义操作新增“切换标签页”,“关闭当前标签页”,“最大化窗口”的操作,循环文本列表同样需要处理标签页。
[x] 试运行JS增加提示返回值功能。
[x] 提取数据操作试运行可以实时显示多数类型的元素提取值。
[x] 字段内容示例值很长时自动换行。
[x] MacOS下循环点击每个链接的Bug修复。
[ ] 判断条件增加多个值,与或都行。
[ ] 操作台增加OCR识别图片选项。
[ ] 下载的图片名称可自定义,用于后续读取图片方便验证码识别等。
[ ] 出一期设计阶段不用自带浏览器设计的教程(不能自动点击和输入文字)。
[ ] 文心一言测试。
[ ] PDF生成。
[ ] 文章生成doc,图片插入到文字中保持顺序不变。
[x] 保存任务提示时间减少。
[ ] 操作备注。
[ ] 循环的XPath也可以使用上层循环做拼接。
[ ] 可选是否加载图片和视频以提高效率。
[x] (Bug修复)打开网页默认应该打开的是链接池的第一个链接。
[x] 双击操作。
[ ] mysql数据去重bug:1054, unknown column '_id' in 'field list'.
[x] 字段设置为常量。
[ ] Shadow-root处理。
[ ] 下载文件是否自动重命名选项。
[ ] 动态调试//text()[1]可以爬到但是动态调试匹配不到
[ ] (在不可优化的情况下,如设置了换行的需求)当一个XPath可以匹配到多个元素时,改变逻辑从只提取第一个匹配到的元素到提取所有匹配到的元素并合并文本。 356.json
[ ] Docker模式下带用户信息模式的Bug修复。
[ ] 操作台关闭后可以重新打开。
[ ] EasySpider主程序没开时,运行执行阶段程序会报错,把这个错误提示出来,即提示用户主程序没开不能使用local的remote功能。
[ ] 用getHTML()来解决shadowroot提取的问题。