这几天做一个小项目,分给我的模块是对于BOKECC体系网站的抓取。

从来没有用过python,这次来尝一下鲜,感觉还行~

BOKECC就是一个视频网站的解决方案,我的任务很简单,就是给定一个网址,我来抓取对应页面上的数据内容。

整个系统采用分布式架构,我来负责做爬虫节点。

简单来说就是整个系统可分布式部署,每个节点接收来自控制者的远程调用,独立完成任务,并向上级汇报完成情况。

这里采用暴露WebService的方式来提供接口。

功能需求点

概述

输入

提供webservice接口供主控调用,异步启动爬虫任务。

输出

1.       在正常接收、启动任务后立即给主控返回接收成功。

2.       在完成任务/任务失败后调用主控提供的回调接口。

3.       抓取成功后,将抓取数据保存至数据库。

错误处理

抓取异常情况下,应该将错误原因汇报给主控,并记录日志。

并发性需求

模块支持多线程并发调用。

BOKECC体系网站有非常多个,通过进行实际情况调研,发现各个页面在数据上有所不同(但大同小异),为了省事,我决定只用一套代码来爬取所有对应站点。那就要求我们的代码具有通用性。

另外,客户端要实现0配置,爬取的结果写入数据库。(数据库配置参与也应该由控制者——WEB接口调用者来决定)。所以我们在节点上维护一个数据库连接池。

大致流程如下:

在实际编码过程中也没有严格遵守此流程,进行了相应的扩展,不过大体如上。

日志记录设计:

日志条目

级别

记录信息

WebService接口被调用

Info

调用方IP及各接口参数

主控身份校验失败

Warn

调用方IP

开始建立/更新数据库连接池

Info

数据库参数

数据库连接失败

Error,Notify

失败原因

数据库连接成功

Info

开始启动爬虫任务

Debug

开始抓取网页

Info

URL

一次网页抓取超时

Warn

当前重试次数

一次网页抓取异常

Warn

异常原因

重试范围内网页抓取失败

Error,Notify

网页抓取成功

Debug

开始内容匹配

Info

正则表达式匹配失败

Error,Notify

失败字段、失败原因

正则表达式匹配成功

Debug

开始更新数据库

Info

SQL操作

Debug

SQL语句

更新数据库完成

Debug

写数据库异常

Error,Notify

当前执行的SQL语句,异常原因

任务成功

Info

技术选型:

开发平台:  windowsXP

部署平台:  跨平台

编程语言:python2.5

IDE+plug-in:MyEclipse 7.0 + pydev

具体使用的python技术:

功能

技术选型

网页抓取

urllib2

内容解析,正则表达

re

WebService

ZSI2.0

SOAP协议

SOAPpy(ZSI依赖)

XML

pyXML(ZSI依赖)

Web服务器

ZSI自带SOAP SERVER 或Apache

发布、部署

Windows平台:py2exe

下面一节将进入正式编码阶段。

用python进行分布式网页数据抓取(一)——设计相关推荐

  1. 如何用python抓取文献_浅谈Python爬虫技术的网页数据抓取与分析

    浅谈 Python 爬虫技术的网页数据抓取与分析 吴永聪 [期刊名称] <计算机时代> [年 ( 卷 ), 期] 2019(000)008 [摘要] 近年来 , 随着互联网的发展 , 如何 ...

  2. [Python爬虫] 三、数据抓取之Requests HTTP 库

    往期内容提要: [Python爬虫] 一.爬虫原理之HTTP和HTTPS的请求与响应 [Python爬虫] 二.爬虫原理之定义.分类.流程与编码格式 一.urllib 模块 所谓网页抓取,就是把URL ...

  3. 网页数据抓取,关键在于抓取的准确性和应对海量数据时的快速反应

    无论是互联网科技.大数据.还是云计算,关键都在于技术优势,技术的成本和门槛都很高,不是两三个人零成本就可以打造一个产品. 我们以网页数据抓取来说,一门基于web结构或基于浏览器可视化的数据获取技术,关 ...

  4. 网页数据抓取-网页实时数据抓取软件

    网页数据抓取,随着社会的发展,互联网的普及,不管是企业还是个人都意识到数据的重要性.今天给大家分享一款免费的网页数据抓取软件.只要点点鼠标就能轻松采集你想要的内容不管是导出还是自动发布都支持!详细参考 ...

  5. 1.3 网页数据抓取

    1.3 网页数据抓取 李沐 B站:https://space.bilibili.com/1567748478/channel/collectiondetail?sid=28144 课程主页:https ...

  6. 李沐【实用机器学习】1.3网页数据抓取

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.数据抓取工具 二.实例解析 总结 前言 网页数据抓取目标:在一个网站里面感兴趣的数据抓取出来 数据特点:噪点较多, ...

  7. 网页数据抓取之当当网

    所谓"网页数据抓取",也称为网页数据采集,Web数据采集等等,就是从我们平时通过浏览器查看的web网页上来提取需要的数据信息,然后以结构化的方式存储到CSV.JSON.XML.AC ...

  8. [Python爬虫] 四、数据抓取之HTTP/HTTPS抓包工具Fiddler

    往期内容提要: [Python爬虫] 一.爬虫原理之HTTP和HTTPS的请求与响应 [Python爬虫] 二.爬虫原理之定义.分类.流程与编码格式 [Python爬虫] 三.数据抓取之Request ...

  9. Python实现的淘宝直通车数据抓取(3)

    商家那里给出的是一个有几千行的excel表,这里使用openpyxl来读取excel. class read_write: def __init__(self,token,cookiestr): se ...

最新文章

  1. centos安装后两个启动项、_centos8的启动项配置
  2. logo是啥_乐夏2开播,33支乐队的Logo设计,凭啥一个塑料袋最火?
  3. Java验证(javafx)
  4. LeetCode Palindrome Partitioning II
  5. airplay服务器linux,在Linux实现airplay
  6. 1.3 Linux存储技术
  7. python调用cplex_python 调用cplex(设置 CPLEX 的 Python API)
  8. vs2019编译libcef
  9. 阿里云服务器选购之国际版和国内版的平台对比及建议
  10. 企业微信群机器人php,企业微信群机器人
  11. IPTV知识科普全面,什么是IPTV?IPTV架构部署
  12. 最新数据库驱动包下载(完整版)
  13. 怎么样才能买到廉价机票
  14. 多项式拟合缺点_多项式拟合
  15. 基于51单片机智能大棚智能花盆浇水浇花灌溉补光散热原理图Proteus仿真
  16. 腾讯汤道生:未来将投入100亿资源为中小企业提供SaaS产品及方案
  17. vscode使用小技巧
  18. 西电计算机初试复试占比,西安电子科技大学考研初试、考研复试成绩占比
  19. 【05】制作鸿蒙版蜻蜓短视频系统-事件原理及完成点击,长按,双击等操作实现跳转-优雅草伊凡
  20. 服务器搭建SSH暴力攻击诱饵,制作密码字典

热门文章

  1. layout_collapseParallaxMultiplier的含义
  2. Django admin页面管理设置
  3. 信息系统项目管理师计算题
  4. 2020-03-24
  5. 计算机网络 无线通信与PPP
  6. 错误记录:ERROR: Cannot determine archive format of C:\Users\lbt10\AppData\Local\Temp\pip-req-build-0wduy
  7. 计算机专业网络实训室,计算机网络实训室
  8. 碳中和专利创新专题:各省市县专利面板(原始文件)、低碳专利授权数等多指标数据
  9. 微信聊天记录怎么彻底删除无法恢复?如何避免数据泄露
  10. Django - ORM字段和字段参数