话不多说,下面给几个主流网站列表页的识别效果。






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