首页--工业技术论文--自动化技术、计算机技术论文--计算技术、计算机技术论文--计算机的应用论文--计算机网络论文--一般性问题论文

深度可定制的工具化爬虫系统的设计与实现

摘要第5-6页
ABSTRACT第6页
第一章 绪论第12-15页
    1.1 选题背景和意义第12-13页
    1.2 国内外研究现状第13页
    1.3 本文的组织架构第13-15页
第二章 爬虫相关技术研究第15-24页
    2.1第15-19页
        2.1.1 网络爬虫原理第15-16页
        2.1.2 网络请求第16页
        2.1.3 抓取目标的分类第16-17页
            2.1.3.1 网站第16页
            2.1.3.2 App第16-17页
        2.1.4 爬虫遍历策略第17-18页
            2.1.4.1 广度优先遍历第17页
            2.1.4.2 深度优先遍历第17页
            2.1.4.3 优缺点分析第17-18页
        2.1.5 网络响应的解析第18-19页
    2.2 爬虫框架Scrapy的介绍第19-20页
    2.3 URL去重技术研究第20-21页
        2.3.1 基于Set去重第20页
        2.3.2 基于Trie树的去重第20-21页
        2.3.3 基于Bloom Filter的去重第21页
    2.4 网络爬虫技术存在的问题第21-22页
        2.4.1 爬虫的通用性第21-22页
        2.4.2 爬虫效率第22页
        2.4.3 登录问题第22页
        2.4.4 反爬虫问题第22页
        2.4.5 礼貌抓取第22页
    2.5 本章小结第22-24页
第三章 工具化爬虫系统的设计第24-52页
    3.1 爬虫系统设计目标第24-25页
    3.2 系统整体架构设计第25页
    3.3 URL去重模块的设计第25-29页
        3.3.1 Trie树第25-27页
        3.3.2 Bloom Filter第27-29页
    3.4 可配置的解析模块的设计第29-34页
        3.4.1 模板化解析概述第29-30页
        3.4.2 模版化解析原理第30页
        3.4.3 视频网站结构的共性分析第30-31页
        3.4.4 解析模板配置文件的设计第31-34页
        3.4.5 解析模版引擎的设计第34页
    3.5 模拟登录模块的设计第34-38页
        3.5.1 什么是Cookie第34-35页
        3.5.2 模拟登录的流程第35-37页
        3.5.3 登录验证码的识别第37页
        3.5.4 一个登录流程的例子第37-38页
    3.6 绕过反爬虫模块设计第38-42页
        3.6.1 网站为什么要反爬虫第38-39页
        3.6.2 针对不同反爬策略设计绕过反爬第39-42页
            3.6.2.1 绕过HTTP header的反爬第39页
            3.6.2.2 绕过限制用户IP访问频率的反爬第39-41页
                3.6.2.2.1 使用代理IP池第40页
                3.6.2.2.2 使用ADSL重新拨号来获取新的IP第40-41页
            3.6.2.3 绕过动态加载网站内容的反爬第41-42页
    3.7 监控和告警模块设计第42-45页
        3.7.1 各个爬虫状态监控第42-43页
        3.7.2 爬虫运行统计信息第43页
        3.7.3 抓取失败原因统计第43页
        3.7.4 服务状态监控第43-44页
        3.7.5 邮件告警设计第44-45页
    3.8 并发控制模块的设计第45-50页
        3.8.1 相关概念阐述第45-46页
        3.8.2 并发模块架构设计第46-47页
        3.8.3 线程池的设计第47页
        3.8.4 抓取线程I/O复用的设计第47-50页
            3.8.4.1 异步非阻塞第48页
            3.8.4.2 I/O复用第48-49页
            3.8.4.3 解析多线程并发的设计第49-50页
    3.9 URL消息队列的设计第50-51页
        3.9.1 URL队列的优先级设计第50-51页
        3.9.2 抓取失败重试的URL优先级设计第51页
    3.10 本章总结第51-52页
第四章 工具化爬虫系统的实现第52-66页
    4.1 系统架构与流程第52-53页
    4.2 URL去重模块的实现第53-57页
        4.2.1 Trie树的传统实现第53页
        4.2.2 Trie树的双数组实现第53-56页
        4.2.3 Bloom Filter去重算法的实现第56-57页
            4.2.3.1 Bloom Filter参数的确定第56页
            4.2.3.2 实现Bloom Filter的各个接口第56-57页
    4.3 动态IP池的实现第57-59页
    4.4 解析线程池的实现第59-62页
        4.4.1 线程池实现的考虑因素第59页
        4.4.2 线程池的实现第59-62页
    4.5 异步非阻塞以及I/O复用的并发抓取实现第62-65页
        4.5.1 异步任务的原理第62-63页
        4.5.2 用Python实现异步非阻塞第63-64页
        4.5.3 I/O复用的实现第64-65页
            4.5.3.1 使用select函数实现I/O复用第64-65页
            4.5.3.2 使用epoll函数实现I/O复用第65页
    4.6 本章总结第65-66页
第五章 系统测试与性能评估第66-78页
    5.1 测试环境搭建第66页
    5.2 重要模块的单元测试和性能评估第66-69页
        5.2.1 重要模块单元测试的意义第66-67页
        5.2.2 去重模块第67-68页
        5.2.3 并发控制模块第68-69页
    5.3 数据抓取准确性和完整性的验证第69-72页
        5.3.1 数据抓取准确性和完整性验证的意义第69页
        5.3.2 数据抓取的准确性实验第69-72页
    5.4 数据抓取的稳定性实验第72-74页
    5.5 面临抓取异常的数据抓取告警分析第74-75页
    5.6 数据抓取统计数据分析第75-76页
        5.6.1 爬虫程序宏观抓取时间分析第75页
        5.6.2 爬虫程序数据抓取总量分析第75页
        5.6.3 爬虫程序抓取数据分析第75-76页
    5.7 本章总结第76-78页
第六章 总结与展望第78-79页
    6.1 本文总结第78页
    6.2 未来优化方向的展望第78-79页
参考文献第79-81页
致谢第81-82页
攻读学位期间取得的研究成果第82页
    个人简历第82页
    攻读硕士期间研究成果第82页
    攻读硕士期间参与项目第82页

论文共82页,点击 下载论文
上一篇:针对富文本跨站脚本漏洞的模糊测试技术的研究与实现
下一篇:基于污点分析的JavaScript应用脆弱性检测工具研究与实现