美文网首页
爬虫脚本重构引发的思考

爬虫脚本重构引发的思考

作者: 王国的荣耀 | 来源:发表于2021-04-01 21:22 被阅读0次

爬虫代码重构

背景

  1. 开发时间短,造成功能代码没有有效的分割,造成代码无限扩充的厉害。
  2. 使用本地缓存,导致数据反复爬取之后的数据清洗非常麻烦。
  3. 没有定时的去执行爬取任务。
  4. xpath的读取没有抽取。
  5. redis和mongo缺失。

解决过程

  1. 使用redis构建爬取任务队列;队列为空,重新获取数据,回填到redis中。以此实现数据的增量更新。
  2. 使用mongodb存储数据,便于对数据解析错误时的清洗。
  3. 重构代码,将xpath和对应的爬虫配置分离。
  4. 重构代码,将核心功能的代码聚集,抽取成模块;使模块间的耦合降到最低。

App爬虫脚本的构建

  1. 定位要爬取的App,在繁杂的加密点中,聚焦核心的问题。主要是签名的问题。突破签名,不间断请求数据做压力测试等,查看App的风控点以及推理运维监控点。
  2. 爬取任务队列的构建,爬取数据的中间化数据保存。
  3. 对爬取的数据,提取想要的数据,形成结构化的数据。保存到数据库中。
  4. 对解析出错的字段,重新从mongo中捞出,清洗错误数据。
  5. log日志文件分析,形成数据分析结果,评估App开发过程中的缺点和优点等
  6. 对于App爬取过程中的假数据的处理等。
  7. 对于App 封杀device_id的情况,避免封杀device_id等情况出现等。
  8. App实时任务和离线任务的分开处理等。

如何保证数据的安全

数据保护和数据爬取

最终我们会得到以下几大块:
1. 任务调度模块:负责爬取任务的生成和分配等
2. 脚本爬虫模块:各个App的爬虫脚本
3. 代理服务器模块:负责代理资源的分配等。
4. 数据存储模块:实现数据的存储和清洗以及合并到业务库中。
5. 日志模块:记录各个模块的运行情况,定位各个模块的崩溃问题。
6. 前端模块:负责爬取数据的展示和报表查看等。
7. 自动部署模块:将各个模块的合并,提交到服务器并运行等。

相关文章

  • 爬虫脚本重构引发的思考

    爬虫代码重构 背景 开发时间短,造成功能代码没有有效的分割,造成代码无限扩充的厉害。 使用本地缓存,导致数据反复爬...

  • 爬虫重构

    1.每个网站的请求数据的格式基本一致,不可能一会json格式,一会xml格式。所以可以通过这点固定每个爬虫的请求格...

  • 自学Python:网络爬虫引发的三个问题

    网络爬虫是指是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 爬虫很方便,但是也会引发三个问题,如果使用...

  • selenium需求到框架

    需求分析 --->用例设计 --->基础脚本 ---> 脚本重构 --->封装读取配置文件 --->数据驱动...

  • 携程网站爬虫小结 2018-07-09

    [TOC] 爬虫是什么 简单来说,从网站上按照预先编号的程序或者脚本自动获取信息的动作就叫做网络爬虫。相应的脚本就...

  • 爬虫的"盗亦有道"-Robots协议

    网络爬虫的君子协议 网络爬虫的尺寸 网络爬虫引发的问题 性能骚扰 法律风险 隐私泄露 网络爬虫的"性能骚扰"web...

  • Lua代码优化笔记

    最近正好在重构公司客户端的代码,讲以前残留的C#脚本都从逻辑中剔除然后用Lua脚本实现以方便日后热更需求。重构完之...

  • Scrapy框架之新建Scrapy项目详解

    前言 从这篇开始,带大家通过 Scrapy 框架来写爬虫,相比之前写的爬虫脚本,用上 Scrapy 才更像一个爬虫...

  • 详解Groovy 变量在jenkins pipeline中的正确

    一个例子引发的思考 最近在做jenkins pipeline脚本的开发,因此开始使用groovy语言,在对变量的各...

  • python爬虫入门-学习urllib和requests使用,模

    前言 python爬虫入门-通过茅台脚本讲些爬虫知识,应用和价值[https://www.jianshu.com/...

网友评论

      本文标题:爬虫脚本重构引发的思考

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