1、网网络爬虫爬虫论文答辩论文答辩答辩学生:包志英指导老师:赵中英定向定向爬取 脚脚本之家之家 文本信息信息CONTENTS目录课题综述1研究过程4目前现状2研究结论5研究目标3参考文献6目录页绪论PART ONE选题背景及意义 网络爬虫是一种自动搜集互联网信息的程序。通过网络爬虫不仅能够为搜索引擎采集网络信息,而且可以定向采集某些网站下的特定信息,如文章信息,租房信息等。本文通过python实现了一个基于构造URL地址的多线程爬虫程序。本论文阐述了网络爬虫实现中一些主要问题:如何构造URL地址;为何要实现多线程,以及如何利用scrapy;系统实现过程中的数据存储;网页信息解析等。通过实现这一爬虫
2、程序,可以搜集某一站点的信息,并将搜集到的信息存入数据库。选题背景【关键字】网络爬虫,多线程,python,scrapy,mongodb,php,mysql 80%选题意义搜索引擎作为一个辅助人们检索信息的工具。但是,这些通用性搜索引擎也存在着一定的局限性。不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。为了解决这个问题,一个灵活的爬虫有着无可替代的重要意义。有效信息广告、无用信息选题背景及意义 对于网络延迟的处理,并且能够开启HTTPCHACHE,极大限度的提高爬取速度,伪造代理信息,表单等,让目标网站,认为你是安全的具备可视化显示,以
3、网页的形式有好的显示数据,并提供简单的搜索功能,能将数据简单分类,智能推荐研究目标AC研究目标B 使网络爬虫高效灵活,在主题网站中尽量全面的爬取信息,并且能够自动构造URL,递归调用自身,开启多线程快速的爬取,准确提取有效信息,存储到数据库D整合数据信息,并以json格式存储至Mongo,方面各个平台使用,通过脚本程序,迁移到Mysql为依赖关系较强的项目使用E目标网站地址: TWO网络爬虫基础理论学习构造URL、多线程、强大的抓取能力、信息提取任务python、scrapy、mongodb2016.04.32016.04.102016.04.172016.04.242015.05.1 201
4、6.05.82016.05.152016.05.222016.05.29php、数据可视化显示研究方法步骤一步骤二步骤三步骤四步骤五通过Internet查询网络爬虫运行机制,基本原理,根据所爬取的网站设计自己的爬虫了解爬虫理论机制学习Python,Scrapy框架的搭建,Mongodb的简单操作,Laravel,bootstrap框架学习、编写、调试学习基础知识老师的多次面谈和邮件交流,解决了一些理论的疑点和实践上的难点,指导了爬虫的设计和利弊分析,提供了很多的帮助老师教导设计和学习完基础知识后,搭建了繁琐的环境,在Windows下进行了爬虫的开发、调试,最终成功的实现了信息的爬取与提取爬虫的
5、编写与调试将爬去下来的数据,通过脚本程序进行数据转换,利用网页技术可视化显示可视化显示研究步骤目录页关键技术与难点PART THREE关键技术主爬虫的设计编写数据的转换与显示Spider 主爬虫文件的编写,利用Scrapy根据网站的自身特性构建URL,将抓取下来的网页信息进行信息提取,并将有用信息存储到mongo数据库,监测数据库插入情况可视化显示 将Mongodb中的数据通过脚本程序复写到MySQL,利于网站依赖关系处理,用Laravel框架编写后台控制逻辑,友好的Bootstrap前台显示。ScrapyScrapy环境搭建需要导入的一些关键包:python2.7、lxml、zope、Twi
6、sted、pyOpenSSL、pywin32、一定要注意版本,国内一些也没有,安装依赖包就会将很多人拒之门外。Mongodb启动脚本:mongod-dbpath./data依赖包:pymongo主要类:Script2Pipeline(object)pymongo.MongoClient()tdb=clientself.post.insert(scriptInfo)Spider关键代码:src2Spider(scrapy.Spider):parse(self,response):scrapy.selector.Selector(response)new_url=self.url+str(self
7、.pageNum)+.htmyield Request(new_url,callback=self.parse)Data提取字段:title、desc、content、tag主配置:USER_AGENTCOOKIES_ENABLEDCONCURRENT_REQUESTSHTTPCACHE_ENABLEDMONGODB_CONFIG技术难点VS 全球最大的中文搜索引擎、致力于让网民更便捷地获取信息,为了解决大规模数据管理计算,在金字塔计划夭折后,最终也倒向了雅虎牵头的Hadoop开源项目百度Google Google 的使命是整合全球范围的信息,当搜索引擎抓取到的结果越来越多时,保证存储和查询速
8、度的难度越来越高,研发Caffeine、Pregel、Dremel三种技术以解决这些问题。万网抓取率:25%大数据管理:Hadoop全球市场份额:8.13%万网抓取率:80%大数据管理:Spanner全球市场份额:67.49%案例对比分析目录页研究成果与应用PART FOUR 01 完成了主题爬虫编写,两条爬虫同时爬取目标网站四个多小时,共提取出了有效信息85000条,以json格式,每一万条数据一张表的形式,保存至mongodb数据库 03 通过laravel。bootstrap框架利用MVC框架,将数据优雅的显示到前台,并提供简单的查询功能,但搜索功能还是不尽人意,在多重模糊查询中由于my
9、sql左连接的缺陷是的搜索速度非常的缓慢,有时还可能拖死mysql数据库 02 将mongodb数据库中的数据经过整合,首先使用自带的CSV作为中间件进行转换时由于CSV文件的单个单元格最大 存储32,767 个字符造成数据截取丢失,编写自适应错误脚本程序将mongodb中的数据转换到了mysql数据库成果形式成果形式 脚本之家主爬虫代码片段数据成果存储展现形式应用前景 通过编写灵活的爬虫,简单有效的垂直爬取主题网站,踢去有用信提取,并作统计分析,保存至数据库,提供快速查询接口。垂直化爬取 通过垂直化爬取的数据量比较小,在存储和查询方面都会大大提速,并且精度更高,信息使用率增高,减少 能量消耗
10、解除大数据管理 定向爬去网站信息,并进行学习分析,提高只能利用,判断该行业发展情况和未来走向,做出及时防范数据分析SpiderDATA目录页论文总结PART FIVE论文总结笑看历史小试牛刀闭关思修山科论剑Summary 一个多月的开发,回头望去,困难很多,但通过查阅书记,网络资源,以及老师的指导,已经没有什么困难可以让自己放弃,在未来的生活学习中也会将这种学习过程延续下去 经过基础知识的储备和项目理论的设计,在编写Spider主文件递归调用时、还是多次出错,引入mongo数据库操作时,初始化函数也很不尽人意,数据转换脚本中,由于字符编码和数据量过大(10000/table)引起了数据丢失,与
11、宕机现象 通过上网、书籍查询,自主的完成了基础python,scrapy,php,mongodb,laravel,bootstrap知识的学习,培养了自学体系 多次与老师探讨URL构造的设计,数据的保存形式,以及搜索最快最准确的方式,导师对不成熟的设计及时做出了矫正,并在Spider的递归调用,数据迁移脚本的编写做出了指正。0202030304040101致谢THANKS!大学生活即将结束,在此,我要感谢所有教导我的老师和陪伴我一齐成长的同学,他们在我的大学生涯给予了很大的帮助。本论文能够顺利完成,要特别感谢我的导师赵中英老师,赵中英老师对该论文从选题,构思到最后定稿的各个环节给予细心指引与教导,使我得以最终完成毕业论文设计!最后,我要向百忙之中抽时间对本文进行审阅,评议和参与本人论文答辩的各位老师表示感谢!恳请各位老师批评指正!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1