美文网首页工作生活
通用新闻扫描爬虫设计思路(自动识别链接,自动提取正文和发布时间)

通用新闻扫描爬虫设计思路(自动识别链接,自动提取正文和发布时间)

作者: sexy_cyber | 来源:发表于2019-07-02 10:35 被阅读0次

1.整体方案解决思路

1.先解决量的问题再解决质的问题

2.解决文章详情提取和发布时间提取正确性的问题
    2.1 解决时间提错的问题,反复调优时间解析算法
    2.2 正文包含大量噪音,不断优化做降噪处理
    
3.全新开发了一套发布时间抽取算法和正文提取算法

2.分阶段实现步骤

2.1 url有效性校验,标准化

由于我们手中的url库,url的质量层次不齐,必须摸清情况,清洗

  • 无效url删除
    • 如果不含有www,添加www依旧无法访问那么认定无效;
      使用工具requests,无法请求则认定
  • url变换更新
    • 更新缺少www的,使用工具requests
    • 更新url重定向一类的,使用工具selenium
  • url能够到达的页面与预期的页面不同,做更新
    • 通常遇到的都是导航页,将该url直接替换为新闻列表页,手工操作
  • url访问的页面为ajax加载,更新url并且定向解析

2.2 从站点首页抽取链接

1.提取所有链接
    1.1 在链接抽取中新增对于需要click事件触发才能产生的链接兼容
    1.2 提取所有a标签,are标签的src,href,等属性
2.过滤垃圾链接
    2.1 过滤跨域
    2.2 过滤本页
    2.3 过滤垃圾信息脏数据
    2.4 链接清洗
    2.5 链接属性识别
    2.6 ajax加载网站兼容,解决方案是绕过和splash
    2.7 详情解析算法优化(时间)
    2.8 说明文档编辑和规范化
3.链接性质识别
    3.1主要结合标题和url各自的特征值,以及两者结合对比进行识别
    3.2识别详情链接
    3.3识别板块链接

2.3正文解析+时间解析

  • 利用自建解析算法,提取正文和发布时间
  • 自建解析算法 > 点我看详情
    • 模拟用户识别原理;利用对段落的次序,段落间的换行数,每个段落的长度.....的计算,提取降噪后的文本
    • 过滤垃圾详情页,通过计算提取到的正文的长度来判断是否是垃圾链接(低于阀值丢弃)
    • 过滤垃圾详情页,通过计算中文,数字,英文彼此间的占比关系,过滤垃圾文本
    • 提取核心文本,通过最长文本段定位文章核心位置,通过与核心位置进行悬挂高度对比,过滤非正文文本
    • 提取发布时间:用正则提取页面所有时间,
      根据顺序两两对比一旦有时间str长度不一样这返回该对比的最大值,
      如果所有日期的长度都一样,则返回第一个元素,
      如果只提取到一个日期,那么返回该日期,
      如果提取不到日期,那么则认为该新闻为垃圾数据,放弃该新闻的落库
  • 对于时间抽取的总结:
    • 未来时间: 由于新闻不存在发布时间,导致提取到正文的未来时间
    • None : 由于详情页不存在任何时间导致抽取结果为空
    • 碎片化 : 提取的时间不包含日,那么时间戳或解析成负值
    • 非发布 : 提取到时间由于位置计算错误,导致提取到的是正文的时间

相关文章

网友评论

    本文标题:通用新闻扫描爬虫设计思路(自动识别链接,自动提取正文和发布时间)

    本文链接:https://www.haomeiwen.com/subject/thzacctx.html