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

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

作者: 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