# 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上,后续可以用多个进程分别处理downloadpipeline