# Knownsec-Spider
**Repository Path**: wick.zt/Knownsec-Spider
## Basic Information
- **Project Name**: Knownsec-Spider
- **Description**: 知道创宇机试题——爬虫
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2015-09-22
- **Last Updated**: 2020-12-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 使用python编写一个网站爬虫程序
## 支持参数如下
spider.py -u url -d deep -f logfile -l loglevel(1-5) --testself -thread number --dbfile filepath --key=”HTML5”
## 参数说明
-u 指定爬虫开始地址
-d 指定爬虫深度
--thread 指定线程池大小,多线程爬取页面,可选参数,默认10
--dbfile 存放结果数据到指定的数据库(sqlite)文件中
--key 页面内的关键词,获取满足该关键词的网页,可选参数,默认为所有页面
-l 日志记录文件记录详细程度,数字越大记录越详细,可选参数,默认spider.log
--testself 程序自测,可选参数
## 功能描述
1. 指定网站爬取指定深度的页面,将包含指定关键词的页面内容存放到sqlite3数据库文件中
2. 程序每隔10秒在屏幕上打印进度信息
3. 支持线程池机制,并发爬取网页
4. 代码需要详尽的注释,自己需要深刻理解该程序所涉及到的各类知识点
5. 需要自己实现线程池
## 提示
1. 推荐使用模块
re urllib/urllib2 beautifulsoup/lxml2 threading optparse Queue sqlite3 logger doctest
2. 注意是“线程池”而不仅仅是多线程
3. 爬取sina.com.cn两级深度要能正常结束
## 建议程序可分阶段,逐步完成编写
例如:
1. Spider1.py -u url -d deep
2. Spider3.py -u url -d deep -f logfile -l loglevel(1-5) --testself
3. Spider3.py -u url -d deep -f logfile -l loglevel(1-5) --testself -thread number
4. 剩下所有功能
## 待解决问题
1. testself参数实在是不知道该怎么用了
2. 线程池只用在了download上,后续可以用多个进程分别处理download和pipeline