林业论文阅读终端文献综述

 2022-06-06 22:45:45

林业论文阅读终端文献综述

摘要:林业论文阅读移动终端系统聚焦于为科研工作者提供林业、计算机相关的论文的搜集以及呈现。它的特点是信息集中化,阅读简便化的移动跨平台。本文基于CNKI数据库的高级搜索方式以及arxiv论文检索,筛选出近十年的爬虫,信息安全、Python语言以及容器化运维技术相关文献12篇,梳理了爬虫技术的发展以及系统的技术选型,后台部署,信息安全技术及相关调优经验,为后续系统的搭建与调优打下基础。

关键词:爬虫;容器化;Python;信息安全

引言

设计一个arXiv阅读的终端系统,信息源的获取是十分重要的,而爬虫就是为了更有效率的从结构化网页中提取信息的一项技术,但这并不意味着盲目无限制的爬取,爬虫对于信息的爬取需要遵守各个网站的robots协议,robots协议并不是真正的法律, 所以有些人认为违反了robots并不意味着必然违法, 只是违反一种规则罢了。但就robots协议在现实中的情况来看, 该协议对于防止网站信息、个人信息和商业机密的泄露具有天然的防护作用, 所以国际搜索巨头谷歌微软必应等都相继采用并严格遵守, 国内外各大互联网公司也先后采用该协议[1]。因此针对arxiv的爬虫,在设计之初就需要谨慎对照它的robots协议进行开发,不应无限制的爬取该网站资源,此外,在技术层面要做好相应的措施应对它的反爬虫策略。在移动端的设计上,我们同样要把信息安全技术考虑进去,不能让用户无限制的访问我们的数据库,因此需要做好应对CSRF攻击,SQL注入攻击的防范措施。只有综合上述这些因素才能建立一个完善的、鲁棒性强的移动终端。

  1. 爬虫策略以及如何应对反爬机制

在设计爬虫之前,我们需要仔细阅读网站的robots协议,在其协议允许的范围内设计我们的爬虫的范围频率架构等,虽然robots协议并不是真正的法律, 只是违反一种规则罢了。但就robots协议在现实中的情况来看, 该协议对于防止网站信息、个人信息和商业机密的泄露具有天然的防护作用, 所以国际搜索巨头谷歌微软必应等都相继采用并严格遵守[1],作为个人开发者,也应当遵循其协议内容,以此来避免潜在的不必要的违法行为。

在仔细研读了arXiv的robots协议之后,我初步限定了爬虫的爬取范围,arXiv协议标明Indiscriminate automated downloads from this site are not permitted[4],明确禁止全站爬虫,因此我们考虑将爬虫范围限定在根据关键词索引到的有限范围内。此外该协议同样标明Continued rapid-fire requests from any site after access has been denied (i.e. with 403: Access denied HTTP response) will be interpreted as an attack[4]。翻译过来是arXi的监控系统将拒绝访问违反这些准则的网站。访问被拒绝后,任何站点的持续快速触发请求(即403:访问被拒绝的 HTTP 响应),这是一种“流量限制”反爬虫策略,防护措施完备的网站会监控用户是否快速地提交表单,或者快速地与网站进行交互,从而限制速度异常、短时间大量下载信息的IP访问[3]。为了应对这种反爬策略,我们需要采用代理IP的方式,即更换原有的IP和端口, 针对访问频率高的主机设置访问限制[5],除了代理IP,在适当的时候休眠爬虫线程来达到控制访问频率也是一种极其常用的方法,这两种方法需要结合使用,当然我们也需要考虑服务器的负担,通常爬取时间应该分布在服务器较为空闲的时间段,避免对服务器造成过大负担,这种情景可以考虑在后台设置定时爬虫,在每周周末或是其他空闲时间开启爬虫。

二、技术选型

制定了爬虫策略之后,接下来要考虑的就是技术选型了。

在开发语言上,综合文献以及网络资料,我有以下几种预选:1. Python[6],2. Golang,3. Java,Python相较于繁重的Java Spring框架,它有一套更简洁轻量的web框架flask,并且爬虫框架支持丰富,相较于Golang信奉的一件事只需要一种方法[7],Python提供了更强大的结构化信息解析模块,可以更简便的与后端系统集成并且进行快速开发,并且Python在语言层面上支持多线程和协程,相较于Java只支持多线程操作--进程和线程的调度是操作系统内核,以及运行环境的上下文,通过保存现场、恢复现场等中段的方式进行。核心的思想还是获取CPU时间片[8],而协程省去了多线程内核级别的上下文切换开销。

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。