Python程序设计 作业2

  1. 简述Python语言的优缺点,并举例说明部分应用领域。

优点:
1.简单易学。
Python对于没有编程功底的⼈员来说,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。相对于其他的语言来说,Python的代码更加简洁,相同的功能,使用Python语言,代码量要远低于其他编程语言。
2.开发效率非常高。
Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
3.高级语言。
当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
4.可移植性。
由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行。
5.可扩展性。
Python本身结合了C语言的编程习惯,如果Python项目中想要使用⼀部分的C语言代码,可以很方便的调用C语言方法。
6.可嵌入性。
你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
7.免费开源。
Python从诞生的那⼀刻就是开源的,世界上所有的程序员都可以为Python编写各种各样的代码,让Python能够适应不同的需求场景。Python的开源促进了开源社区的发展,而开源社区提供的各种功能强大的第三方软件,反过来也推动了Python的发展
缺点:
1.速度慢。
Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议用C去实现的。
2.代码不能加密。
因为PYTHON是解释性语言,它的源码都是以名文形式存放的,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。
3.线程不能利用多CPU问题。
GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。
应用领域1:人工智能。Python语言是目前公认学习人工智能的基础语言,很多开源的机器学习项目都是基于Python语言编写的,例如:用于身份认证的人脸识别系统。这因为脚本语言写起来简单容易,用Python只是写逻辑,几行代码就出来了。
应用领域2:云计算。云计算是未来发展的一大趋势,Python是为云计算服务的。很多常用的云计算框架都有Python的身影,例如:OpenStackPython的火爆,很大一部分就是因为近几年大量云计算项目的应用。
应用领域3:Web开发。在Web开发领域,Python拥有很多免费数据函数库、免费网页模板系统,以及与Web服务器进行交互的库,可以搭建Web框架,快速实现Web开发。例如:我们经常使用的豆瓣网、知乎这些平台都是用Python开发的。
应用领域4:爬虫技术。在爬虫领域Python几乎是霸主地位,Python可以将网络一切数据作为资源,通过自动化程序进行有针对性的数据采集以及处理。用python来写爬虫,会比用其他编程语言写要简单的多,因为python本身就是一门简洁的语言。
应用领域5:网络游戏开发。在网络游戏开发方面,Python 可以用更少的代码描述游戏业务逻辑。例如:我们平常玩的游戏阴阳师就是用 Python 编写的。
应用领域6:数据分析。在数据分析方面,Python 是金融分析、量化交易领域里用的最多的语言,平常工作中复杂的Excel报表处理也可以用Python来完成对数据分析师来讲,Python语言是数据分析的利器。

  1. Python是实现网络爬虫的一种重要工具,能够有效用于网络信息提取,但是爬虫技术滥用往往会造成个人隐私数据、商业机密等的泄漏,请简述作为一名软件工程师应具有的职业美德?

爬虫的本身是合法的,但是如何使用爬虫去获取数据的这一行为是具有风险的,常见爬虫造成的问题有:为了追求效率、实时性简单粗暴地开启频繁请求、多线程爬虫,过度占用目标网站服务器资源、影响网站运营。严重者导致网站瘫痪、不能访问等。为了满足个人目的,利用技术手段突破网站数据访问限制、窃取网站上未经许可内容。更有甚者把窃取数据散布于网上,使网站失去对自己数据的控制,造成网站所有人经济损失。为了满足个人、企业需求,未经授权爬取具有版权内容(小说、文章、图片、影视作品)、个人信息(招聘、内容社区、购物数据),造成他人数据被不正当地复制、使用。尤其是随着中国经济不断发展,个人信息、知识产权越来备受重视,《中华人民共和国网络安全法》不断完善:社工库销声匿迹、盗版网站关停、破解网站整改。爬虫的本身是合法,但利用爬虫非法获取商业、个人数据也将将面临更高的处罚风险。
具有风险的爬虫:
1.强行突破网站设置的技术措施。
由于爬虫的批量访问会给网站带来巨大的压力和负担,因此许多网站经营者会采取技术手段,来阻止爬虫获取自己网站信息。通过UA识别爬虫,设置IP访问频率,如果超过一定频率,弹出验证码,通过并发识别爬虫,请求的时间窗口过滤统计,限制单个ip/api token的访问量,识别出合法爬虫,蜜罐资源等,虽然存在多种不同的技术,本质上都是网站阻止爬虫批量抓取信息的技术手段,因此从法律上并没有实质性区别。而针对该等技术手段,爬虫开发者可以通过优化自己的代码、使用IP池等多种方式规避上述技术措施,实现对网站信息的批量抓取和复制。
2.爬虫抓取的信息属于著作权法保护的作品。
无论是网络上的文章、图片、用户评论,甚至网站自身的数据库,都有可能在具备独创性的情况下构成著作权法保护的作品。对于该等信息的抓取和使用是否构成著作权侵权,就网页访问行为而言,由于爬虫本身仅仅是对人类访问行为的模仿,因此就访问行为而言,对于那些人工访问本身已经可以访问的信息,访问行为并不会构成侵权。但是,如果被抓取的网站本身设置了某些技术措施以保证只有特定用户才能接触该等信息,而爬虫突破了该等限制,则爬虫的访问行为有可能涉嫌破坏技术措施的违法或者侵权行为;就数据保存行为而言,从著作权法的角度来讲,抓取行为的本质上是对信息的复制,因此该等行为有可能侵犯著作权人的复制权。当然,我国对于临时复制的行为持宽容态度。如果该等信息的保存属于就数据提取和使用行为而言,如果爬虫控制者抓取信息后在自己的网站上公开传播抓取到的信息,则还有可能进一步侵犯信息网络传播权。
3.爬虫抓取的信息属于商业秘密。
虽然网络上公开的信息较难构成商业秘密,但由于网络上某些信息可以通过采取技术措施使得仅有特定的用户可以接触,因此网络上的信息仍有可能具备商业秘密要求的秘密性和保密性,构成商业秘密的可能。根据《反不正当竞争法》第九条,以不正当手段获取他人商业秘密的行为即已经构成侵犯商业秘密。而后续如果进一步利用,或者公开该等信息,则构成对他人商业秘密的披露和使用,同样构成对权利人的商业秘密的侵犯。
4.爬虫抓取的信息属于反不正当竞争保护的数据。
在大众点评诉百度不正当竞争案件、以及新浪微博诉脉脉不正当竞争等案件中,法院都认定被告未经许可抓取、使用原告网站中的数据的行为,违反了诚实信用原则及公认的道德,损害了互联网的市场竞争秩序,损害了原告的竞争优势,从而构成不正当竞争。
5.爬虫不能涉及个人隐私。
如果爬虫程序采集到公民的姓名、身份证件号码、通信通讯联系方式、住址、账号密码、财产状况、行踪轨迹等个人信息,并将之用于非法途径的,则肯定构成非法获取公民个人信息的违法行为。也就是说你爬虫爬取信息没有问题,但不能涉及到个人的隐私问题,如果涉及了并且通过非法途径收益了,那肯定是违法行为。
另外,还有下列三种情况,爬虫有可能违法,严重的甚至构成犯罪:
1.爬虫程序规避网站经营者设置的反爬虫措施或者破解服务器防抓取措施,非法获取相关信息,情节严重的,有可能构成“非法获取计算机信息系统数据罪”。
2.爬虫程序干扰被访问的网站或系统正常运营,后果严重的,触犯刑法,构成“破坏计算机信息系统罪”
3.爬虫采集的信息属于公民个人信息的,有可能构成非法获取公民个人信息的违法行为,情节严重的,有可能构成“侵犯公民个人信息罪”。
作为一名软件工程师,应该有自己的底线。我们绝大多数公司和个人使用的爬虫都是没有问题的,不必人人自危,只要把握住住:不爬取目标网站的个人信息内容以及公民隐私;不交易爬取的目标公司的商业数据;对有版权的内容的爬取应审慎,未获授权商业使用则违法;不要利用爬虫非法获利;不要爬取网站的付费内容;有风险的行业谨慎进入,比如现金贷、不合规的 P2P、赌博类游戏、黑五类产品的行业。如果公司安排入侵某个网站数据,或者泄露公司信息的都需要保持警惕。敬畏法律,遵纪守法,从我做起。

你可能感兴趣的:(Python,python,开发语言)