爬虫项目学习

概述

爬虫:
  可控的软件机器人,可用从互联网抓取所需资源。爬虫是搜索引擎后台第一个子系统,数据入口之一;
爬虫功能:
  搜索引擎的基础应用,抓取大量数据,网页下载器,网店秒杀
关于项目
时间安排:
1·需求:
2·设计:
 业务设计:业务层方案,即软件实现的系统想要完成一个工作需要经过哪些步骤或流程
 技术设计:框架设计与处理流程规划,面向对象
3·编码:使用基本的技术细节进行系统实现
4·测试:对实现的系统的可靠性进行监测
5·集成:将每个程序员开发的模块或子系统合成为一个完整的系统

思维方式
 线性思维方式与发散思维方式

软件开发思想
 模块思维
 渐进式开发

需求:

 自动抓取网络资源的软件
1·网络资源定义:网页、图片、音乐、视频等
2·自动化定义:一旦运行不需要更多干预

 生成需求说明文档
内容:对需求中不明确或不完善的说明进行解释
功能点、附加要求、性能要求

设计:

 业务设计:
如何思考并完成设计? 从顶层开始思考并设计,避免过早陷入细节

互联网
爬虫系统
系统黑盒
数据库
系统最简单数据流

设计处理流程:
1·得到爬取种子(URL)
2·根据爬取种子下载资源(页面)
3·解析页面,提取更多URL
4·对页面做持久化操作
5·根据提取的URL进行下载操作
6·重复第2步到第5步

系统设计:

URL种子
控制器
互联网
下载器
解析器
持久化器
数据库

 设计阶段必不可少,设计可以明确思路,提高效率和代码质量
 详细设计:对系统或模块设计要有输入和输出

控制器模块

在这里插入图片描述
控制器模块由三个模块组成:
1、配置文件处理模块:从配置文件中读取配置项,提供配置项的提取接口
2、URL维护模块:负责维护URL库,提供如下功能
 a)输入新的URL
 b)输出一个未抓取的URL
 c)负责维护URL的抓取状态
3、任务调度模块
 a)负责协调控制器的流程
 b)负责调用其他系统模块完成工作
4、维护URL列表数据结构

控制器配置文件设计

 配置文件解析模块
配置文件是以文件形势保存程序运行时必要的参数,减少输入时的繁琐过程
文件类型是文本文件,内容一般以键值对形式出现。

概要设计:

配置文件内容:
 key=value 格式
 注释规则:注释字符串前以“#”标记

配置项设置

项目字段
并发任务数job num
URL种子seed
抓取深度deeps
输出日志的等级log level
模块存防路径(唯一)Module path
模块名称(模块文件名,可多个)Module name
允许抓取的资源类型(多个,后缀)file type
模块详细设计

操作:
1·读取配置文件
2·得到配置文件选项的值(键值)
3·初始化

//类设计伪代码
class ConfigParser
{
	public: //公有成员函数(外部接口)
	ConfigParser();
	load();
	对应key的操作();
	操作1;
	操作2;

	private: //私有成员变量
	job num
	seed
	deeps
	log level
	Module path
	Module name
	file type
	
}

技术点
1、按行读取fgets
2、分割字符串
3、消除注释
4、消除空格

控制器URL维护模块设计

分析:
URL格式:http://192.168.0.1/test.html

www.baiudu.com=>IP
结构:域名或IP地址,文件路径,文件名

设计URL的数据结构
项目字段名称
完整URLurl
协议类型Protocal
域名Sitename
资源路径Path
文件名Filename
当前url状态 (0-未抓取 1-抓取成功 -1-抓取失败)State
当前url深度Deep
当前资源类型Filetpe
http协议请求页面流程


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值