话不多说,下面给几个主流网站列表页的识别效果。
可以看到,列表基本都识别出来了,一些列表子项( List Item )的字段也标注出来了。这个算法还支持分页的识别。如果进一步优化,甚至可以做到网络爬虫中的自动驾驶,输入一个坐标(网站 URL )就可以自动抓数据,不需要写 XPath 各种抓取配置规则。做到这一步,说明离智能爬虫就不远啦。
算法不是基于 OCR 的,因此非常快,后续会进一步优化,欢迎大家提意见。
1
sillydaddy 2020-09-08 17:58:02 +08:00
这个做好了就再也不怕网站改版改 html 了!!是基于什么实现的呢?
盲猜一下,应该不是基于深度学习,但也应该不是基于渲染的位置什么的。 猜不出来。。 |
2
yunser 2020-09-08 19:03:54 +08:00 via iPhone
@sillydaddy 列表有个共同特征,就是子元素的结构基本一致,我猜是根据这个判断的。还有 ul li 。
|
3
guyskk0x0 2020-09-08 19:05:20 +08:00 via Android
很赞!开源吗?还是接口服务?
|
4
louettagfh 2020-09-08 19:32:14 +08:00
开源吗 之前想基于 OCR 搞一个
|
5
tikazyq OP @sillydaddy 是的,解决的就是这个问题,但既不是根据深度学习也不是根据渲染位置,是非常简单的算法
|
8
tikazyq OP @louettagfh 同上
|
10
marcushbs 2020-09-08 19:55:41 +08:00
想起了逝去的 Kimono
|
11
tikazyq OP @bojue 我记得后羿采集器可以,但也没公开算法,而且貌似收费,目前至少开源做的很准的还是比较少
|
12
tikazyq OP @marcushbs 可惜了,不过 kimono 也不完全自动化,需要一些监督,当时是个不错的产品
|
13
Tianyan 2020-09-08 20:13:59 +08:00
爬来爬去把搜索引擎搞成了垃圾搜索引擎
|
15
heiheidewo 2020-09-08 20:17:12 +08:00
如果是我写的那种不规范的 html 看楼主怎么识别
|
16
tikazyq OP @Tianyan 现在主流搜索引擎都有比较健全和复杂的算法来规避垃圾内容了,除非你用的是垃圾搜索引擎
|
18
tikazyq OP @heiheidewo 爬虫开发者最怕你这样的前端杀手
|
19
mscb 2020-09-08 20:57:31 +08:00 via Android
啥原理?用上类似于 yolo 这类深度学习的技术吗?
|
21
lemonda 2020-09-08 21:28:01 +08:00
有个需求不知道能不能实现,用来迁移网站用的,比如一个网站有很多个产品页面,每个页面都是单独做的,大同小异,无法从代码抓,因为没有特别的标签,OCR 也不行因为有的是 tab,要点开了才能看。
想法是先在几个测试页面上截图一样点和框出要采集的内容,剩余的它学会了自己采。 |
22
herozzm 2020-09-08 21:31:25 +08:00 via Android
ajax 加载的,json 格式的 xml 也能?规则虽老但好用,智能虽好但没法投入生产
|
25
imn1 2020-09-08 22:03:30 +08:00
不需要深度,有足够 html parse 能力就行,深度做这个也太废机器了
我暂时想到的是,这些规则的表格,css 也是规范且类似的,联系父节点、子节点一起分析就够了 之前想写个类似的(目的是辅助浏览,整行整列隐藏个人不关注的内容),只是我多年没做前端,缺乏这个能力和动力 |
26
Mitt 2020-09-08 22:07:45 +08:00
以为会有链接。。。
|
27
haoxuexiaoyao 2020-09-08 23:10:23 +08:00
什么都没有 看了个图
|
28
binux 2020-09-09 00:19:39 +08:00 via Android
单页重复结果识别也太简单了。
五年前我都做到多页的模板识别了。 然而并没有什么卵用。 要准确比如手写,要泛化不如直接训练一个 model 。 |
30
tikazyq OP |
31
tikazyq OP @binux 其实真正的列表识别还是有一些 trick 的,需要将 html 各种信息进行分析统计判断,要做到高准确率还是有些难度的
|
32
RyougiShiki 2020-09-09 10:06:15 +08:00
用过一款软件 sitesucker,爬取效果相当好,好奇源码。
|
33
ziyunhx 2020-09-09 11:01:04 +08:00
https://github.com/ziyunhx/thrinax
我 2017 年开源的列表页和文章页自动识别代码,有兴趣的可以看看。 |
35
bianz103 2020-09-10 20:09:02 +08:00 via iPhone
怎么知道 ul li 这些渲染后位置呢
|
37
milu2003516968 2020-09-15 13:58:05 +08:00
牛逼是牛逼,但我认为爬虫的痛点并不在于自动识别。
|
38
tikazyq OP @milu2003516968 对于不会写爬虫代码的人来说足够了
|