前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么GNE 不做全自动提取列表页的功能

为什么GNE 不做全自动提取列表页的功能

作者头像
青南
发布2020-07-29 09:56:43
1.1K0
发布2020-07-29 09:56:43
举报
文章被收录于专栏:未闻Code未闻Code

GNE 上线以后,很多同学在用户群里面问到,GNE 能否支持列表页自动提取?例如对于下图中的新闻标题列表:

能自动提取到如下图所示的数据:

代码语言:javascript
复制
[{'title': '上周汪文斌回应80多个提问 其中3件事尤其引人关注',
  'url': 'https://news.163.com/20/0726/20/FIG6FJEG00019B3E.html'},
 {'title': '成都美领馆关闭前24小时:现场有人高唱《大中国》',
  'url': 'https://news.163.com/20/0726/19/FIG1NF9I00019B3E.html'},
 {'title': '美驻成都总领馆现黑垃圾袋 外媒记者:似乎有碎纸片',
  'url': 'https://news.163.com/20/0726/18/FIG0E0IQ0001899O.html'},
 {'title': '美驻成都总领馆被通知关闭第3天:凌晨3点有车驶离',
  'url': 'https://news.163.com/20/0726/16/FIFOFU580001899O.html'},
 {'title': '新三板精选层下周一见',
  'url': 'https://money.163.com/20/0726/07/FIEPSRPS00259DLP.html'},
 {'title': '中巴驶入美驻成都领馆 安保开门时严加防范站成一排',
  'url': 'https://news.163.com/20/0726/13/FIFDBAIV0001899O.html'},
 {'title': '知情人:杀妻案嫌犯曾威胁前妻不同意离婚"命都没有"',
  'url': 'https://news.163.com/20/0726/12/FIFC5VFG00019QIF.html'}]

想法非常好,但实现起来会面临一些问题。

不止一处列表

在一个页面,存在不止一处列表,如下图红色方框、蓝色方框和绿色方框,这三处,从 HTML 里面看,都是列表:

那么,程序怎么知道,应该提取哪个列表?如果把所有列表全部返回,那么用户怎么区分哪些是不需要的呢?如果传入一个 XPath 限定从特定的范围抓取列表,但是既然都传入 XPath 了,直接用这个 XPath 提取列表不就好了吗?

列表项里面哪个 URL 才是标题的 URL?

接下来,你能成功找到列表页所在的区域,那么如果每一行有多个链接,你如何知道哪一个<a>标签中的文字是标题、哪一个@href对应的网址是正文的网址?请看下图,如果不看文字内容,请问你能从 HTML 里面区分哪个红框中的网址对应的是正文网址吗?

所以GNE会怎么做?

GNE 从一开始就不相信各种各样的列表页能自动化完美提取,所以也不会去做完美自动化提取列表页的功能。GNE 要做的是,有限的自动化。

什么叫做有限自动化呢?如下图所示:

在调用list_extractor.extract方法的时候,除了传入网页的 HtmlElement 外,还传入了一个feature参数。这个参数的值是一个看起来像是直接从 Chrome 中复制的 XPath。

没错,feature 参数是你需要的目标列表里面任意一个标题的 XPath。你可以直接在 Chrome 中用开发者工具复制出来。

GNE 拿到 feature 参数以后,会自动从下往上检查它的祖先节点,寻找 feature 参数对应的标题所在的列表。

这样做的好处是显而易见的——第一,这个 XPath 本身已经限定了我需要的列表页所在的位置,所以即使当前页面有多个列表页也能正确识别;第二,feature 参数也能表示出我们需要提取的标题所在的具体标签。所以即使一个列表每一行有多个 <a>标签,也能提取到正确的标题和 URL。

除了 XPath 外,feature 参数也可以接收关键词,如下图所示:

GNE 会到HTML 去寻找所有包含这个关键词的节点,并通过判断他们的祖先节点来寻找这个关键词所在的标题所在的列表。

什么叫做有限的自动化

有限的自动化就是永远相信人的力量。基于统计学的所有 AI 算法都是不可靠的。

上线时间

有限自动化提取列表页的功能,将会在8月2号上线。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 不止一处列表
  • 列表项里面哪个 URL 才是标题的 URL?
  • 所以GNE会怎么做?
  • 什么叫做有限的自动化
  • 上线时间
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档