seo文章采集工具(如何解决尽可能获取全量数据?工具采集地址数据回顾)
优采云 发布时间: 2021-10-28 16:19seo文章采集工具(如何解决尽可能获取全量数据?工具采集地址数据回顾)
本帖主要是记录采集大数据使用优采云采集软件时遇到的坑和规避指南。
为了更好地引导避坑,尽可能的修复坑,指定了工具和环境。
系统环境:win10
工具:优采云7.6 版本
.net 4.1 版本
目标数据样式为非HTML静态页面内容,即动态url参数post请求界面反馈数据。
这一块就是我们需要得到的数据
事件回顾:由于是动态的接口反馈数据,需要不同的参数请求才能得到结果。单个ID参数得到的结果其实是有分页参数的。. 通过前端其他数据接口获取的已知ID参数有975个。可以获取每个ID请求获取的结果总量,但是不能获取分页值。但是当我需要获取975个ID的全量数据时,无法为每个ID单独创建一个任务执行。通过表单导入ID,然后通过批量插入分页规则组合分页接口查询URL,批量导入任务。
坑一:分页不能自动滚动查找。
这里是第一个坑。优采云工具采集 分页地址数据必须由规则定义。如初始参数、增量参数、间距参数、前序、闪回等。但是没有规则可以让变量参数自动滚动直到结果为空。
为了解决问题,尽可能获取全量数据。我只能设置更大的分页参数。这样做的结果就是ID很多,结果很少,但同样需要请求这么多次。这会导致更多的任务分页结果。我选择了几个数据量大的ID参数进行观察,最后为了保证数据量比较完整。分页变量设置为 200。
坑2:本地数据存储问题
优采云 保存数据到本地的文件格式为TXT/excel/html/CSV
Subpit 1:EXCEL是导出xls而不是xlsx
Subpit 2:CSV 自定义模块仅支持 5 个标签
子坑3:CSV数据导出编码强制UTF-8
任务估计:请求的任务数为 975X200=195 000 个请求。每个请求的结果大约有20行,其中一行需要获取26-32个标签。因为是*敏*感*词*院/专业/分数线/招生比例的图书馆功能。排除前端显示的数据。该接口还收录其他参数,用于关联库与库之间的对应关系。
优采云 任务完成后估计结果超过200W,一条线等于一条线。此请求是针对无代理 IP 池的。对于没有访问UA库的优采云7.6版本,运行了40多个小时。幸运的是。目标接口没有反爬虫设置,不需要验证密钥。
子项 1:
最后,当我查看并保存文件XXXX.xls 时,发现最多的结果只有65536 行。通过估计的任务数。我知道如果我踩到它,数据是不完整的。优采云 保存文件只有两种选择:一结果一表,多任务一表。当然,您不必考虑将其保存在表中。然后当数据导出超过xls可以承担的任务时,我什至不知道保存了多个表。. .
子航2:
然后我想,数据量太大了,没有办法导出为CSV数据库格式。新建一个CSV模板,将需要导出的标签添加到要导出的模板中。打开本地结果:XXXX.CSV,你会看到除了前5列数据正常之外,其他列都没有数据。没办法,那我把标签单独导出到总公司。一次导出 5 列标签数据。
默认CSV模板标签数量不满足
新创建的 CSV 模板| 收录 20 个标签,其他接口标签不与此模板一起导出。采集,可以设置30多个标签采集来获取,但是导出的数据可以根据需要在模板中导出。
子项 3:
当我修改模板导出接下来5列标签的对应数据时。打开一看,发现汉字的编码乱了。引用的标签直接翻译和乱码。晚上查了一些教程,下载了相应的工具来修改CSV文件的编码。虽然显示中文,但是没有获取到对应标签的数据。没有办法在 CSV 中存储数据,它不起作用。而此时,又是24小时过去了。这个项目的重点是数据库结构,建一个数据库最重要的就是保证数据的完整性。写一个采集规则真的花了半个小时。拿到这部分数据花了3天时间,还没搞定。.
避坑指南:
1、多任务多线程,提高速度,保证效率。
基于XLS形式只能保存6W+数据。我把975的请求ID分成20个任务
通过定义分页规则Ping出20个任务
大概url:1-50ID创建任务
?id=1&page=&XX&22
?id=2&page=&XX&22
?id=3&page=&XX&22
?id=4&page=&XX&22
?id=*&page=&XX&22
?id=*&page=&XX&22
?id=*&page=&XX&22
?id=50&page=&XX&22
此外,ID在现实中并不总是在增加。但是总数是975,我在请求之前通过一个接口获取了所有的ID。将ID放入表中,按序号递增,结果为975个ID。1-50 Ping出一组任务的url,批量添加任务
那么优采云支持的最大线程是5.,也就是说可以同时执行5个任务。
下载效率提高了5倍。用了 2 天时间完成运行,现在运行所有任务大约需要 8 小时。
2、小数据多任务,适合修改和发现问题。
20个任务运行后,有4个任务数据超出表容量报错,其他任务正常完成。
图中表格为采集的优化数据,原创数据大小为0。
将报错的task拆分为2个task,比如1-25ID,26-50ID为一组,并且为了保证数据的完整性,将list分页值增加到250.
3、excel模板支持多标签获取和导出。
还是选择xls格式保存数据,这样可以保证一行中所有的标签数据是完整的和相关的。
4、添加内容编码转换规则,解决内容编码问题。
总结:当采集中数据量过大时,可以多任务多线程,先测试少量采集数据本地存储,看是否成功获取标签,然后批量多任务获取数据。为内容添加编码功能。确保内容数据的编码与导出文件的编码一致。