Python语言】计算机python语言编程难不难啊,想深入了解下然后转行可以吗?

2020-05-06 15:51发布

2条回答
aoligei
2楼 · 2020-05-06 16:40

对于编程语言难与不难真不好下定论,当然相对于其他编程语言,python语言还是容易点。欢迎深入了解python语言。

卡卡
3楼 · 2020-12-14 09:23


python作为一门高级编程语言,它的定位是优雅、明确和简单。阅读Python编写的代码感觉像在阅读英语一样,这让使用者可以专注于解决问题而不是去搞明白语言本身。Python虽然是基于C语言编写,但是摒弃了C中复杂的指针,使其变得简明易学。并且作为开源软件,Python允许对代码进行阅读,拷贝甚至改进。这些性能成就了Python的高效率,有“人生苦短,我用Python”之说,是一种十分精彩又强大的语言。

一直想用Python和Selenium写一个网页爬虫,但一直都没去实现。直到几天前我才决定动手实现它。写代码从Unsplash网站上抓取一些漂亮的图片,这看起来好像是非常艰巨的事情,但实际上却是极其简单。

简单图片爬虫的原料

Python(3.6.3或以上)

Pycharm(社区版就已经足够了)

pipinstallrequestsPillowselenium

geckodriver(具体见下文)

MozllaFirefox(如果你没有安装过的话)

正常的网络连接(显然需要的)

你宝贵的30分钟(也许更少)

简单图片爬虫的菜谱

以上的所有都安装好了?棒!在我们继续开始写代码前,我先来解释一下以上这些原料都是用来干什么的。

我们首先要做的是利用Seleniumwebdriver和geckodriver来为我们打开一个浏览器窗口。首先,在Pycharm中新建一个项目,根据你的操作系统下载最新版的geckodriver,将其解压并把geckodriver文件拖到项目文件夹中。Geckodriver本质上就是一个能让Selenium控制Firefox的工具,因此我们的项目需要它来让浏览器帮我们做一些事。

接下来我们要做的事就是从Selenium中导入webdriver到我们的代码中,然后连接到我们想爬取的URL地址。说做就做:

fromseleniumimportwebdriver

#我们想要浏览的URL链接

url="https://unsplash.com"

#使用Selenium的webdriver来打开这个页面

driver=webdriver.Firefox(executable_path=r'geckodriver.exe')

driver.get(url)

打开浏览器窗口到指定的URL。

关于怎么快速学python,有什么方法,这个问题,想必大家都已经心中有数了,打算深入了解这个行业的朋友,可以加下小编的python学习裙:588+090+942,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2018最新的python资料和0基础入门教程,欢迎初学和进阶中的小伙伴。

每天晚上20:00我都会开直播给大家分享python学习知识和路线方法,群里会不定期更新最新的教程和学习方法(进群送2018python学习教程),大家都是学习python的,或是转行,或是大学生,还有工作中想提升自己能力的python党,如果你是正在学习python的小伙伴可以加入学习。最后祝所有程序员都能够走上人生巅峰,让代码将梦想照进现实,非常适合新手学习,有不懂的问题可以随时问我,工作不忙的时候希望可以给大家解惑。

一个远程控制的Firefox窗口。

相当容易对吧?如果以上所说你都正确完成了,你已经攻克了最难的那部分了,此时你应该看到一个类似于以上图片所示的浏览器窗口。

接下来我们就应该向下滚动以便更多的图片可以加载出来,然后我们才能够将它们下载下来。我们还想再等几秒钟,以便万一网络连接太慢了导致图片没有完全加载出来。由于Unsplash网站是使用React构建的,等个5秒钟似乎已经足够”慷慨”了,那就使用Python的time包等个5秒吧,我们还要使用一些Javascript代码来滚动网页——我们将会用到[window.scrollTo()](https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo)函数来实现这个功能。将以上所说的合并起来,最终你的代码应该像这样:

滚动页面并等待5秒钟。

测试完以上代码后,你应该会看到浏览器的页面稍微往下滚动了一些。下一步我们要做的就是找到我们要下载的那些图片。在探索了一番React生成的代码之后,我发现了我们可以使用一个CSS选择器来定位到网页上画廊的图片。网页上的布局和代码在以后可能会发生改变,但目前我们可以使用#gridMultiimg选择器来获得屏幕上可见的所有元素。

我们可以通过[find_elements_by_css_selector()](http://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webdriver.WebDriver.find_element_by_css_selector)得到这些元素的一个列表,但我们想要的是这些元素的src属性。我们可以遍历这个列表并一一抽取出src来:

选择图片元素并获得图片URL。

现在为了真正获得我们找到的图片,我们会使用requests库和PIL的部分功能,也就是Image。我们还会用到io库里面的BytesIO来将图片写到文件夹./images/中(在项目文件夹中创建)。现在把这些都一起做了,我们要先往每张图片的URL链接发送一个HTTPGET请求,然后使用Image和BytesIO来将返回的图片存储起来。以下是实现这个功能的其中一种方式:

下载图片。

这就是爬取一堆图片所需要做的所有了。很显然的是,除非你想随便找些图片素材来做个设计原型,否则这个小小的爬虫用处可能不是很大。所以我花了点时间来优化它,加了些功能:

允许用户通过指定一个命令行参数来指定搜索查询,还有一个数值参数指定向下滚动次数,这使得页面可以显示更多的图片可供我们下载。

可以自定义的CSS选择器。

基于搜索查询关键字的自定义结果文件夹。

通过截断图片的预览图链接来获得全高清图片。

基于图片的URL给图片文件命名。

爬取最终结束后关闭浏览器。

你可以(你也应该)尝试自己实现这些功能。全功能版本的爬虫可以在这里下载。记得要先按照文章开头所说的,下载geckodriver然后连接到你的项目中。

不足之处,注意事项和未来优化项

整个项目是一个简单的“验证概念”,以弄清楚网页爬虫是如何做的,这也就意味着有很多东西可以做,来优化这个小工具:

没有致谢图片最开始的上传者是个很不好的做法。Selenium肯定是有能力处理这种情况的,那么每个图片都带有作者的名字。

Geckodriver不应该被放在项目文件夹中,而是安装在全局环境下,并被放到PATH系统变量中。

搜索功能可以轻易地扩展到多个查询关键字,那么下载很多类型图片地过程就可以被简化了。

默认浏览器可以用Chrome替代Firefox,甚至可以用PhantomJS替代,这对这种类型的项目来说是更好的。

如果你选择了自学,我想给你提几点建议:

  1. 找浅显易懂,例程比较好的教程,从头到尾看下去。不要看很多本,专注于一本。把里面的例程都手打一遍,搞懂为什么。

  2. 2.去找实际项目练手。最好是要有真实的项目做。可以找几个同学一起做个网站之类。注意,真实项目不一定非要是商业项目。

  3. 3.最好能找到一个已经会python的人。问他一点学习规划的建议,然后在遇到卡壳的地方找他指点。这样会事半功倍。

  4. 4.另外,除了学习编程语言,也兼顾补一点计算机基础,和英语。

  5. 5.不但要学写代码,还要学会看代码,更要会调试代码。读懂你自己程序的报错信息。再去找些github上的程序,读懂别人的代码。

  6. 6.学会查文档,用好搜索引擎和开发者社区。

  7. 就是以上这些,希望你能有所收获。


相关问题推荐

  • 回答 9

    Python可以说是这几门著名语言里最易理解的了,这就是Python的优点之一,相比较其他语言,PHP,Java,C C++ C#这些语言,

  • 回答 19

    学测试吧,简单容易些

  • 回答 16

    第一语言现在还是java比较好找工作,第二语言学Python或者是go语言都可以了解一下

  • 回答 10

    一、模块介绍1. 定义:模块:本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test)用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能)2. 语法:• import 语句当解释器遇到import语句,如果模块在当前的搜索路径就会被导入。...

  • 回答 1

    PythonPython是一种面向对象的解释型计算机程序设计语言,具有丰富强大的库,常被称为胶水语言,能够把其他语言制作的各种模块轻松链接在一起。因此Python具有:简单易学、数据分析能力强的特点。很多科学家都会自学Python,进行科研数据分析,由此可见Python...

  • 回答 3

    1、简单;2、易学;3、免费开源;4、自动内存管理;5、可以移植;6、解释性;7、面向对象;8、可扩展;9、丰富的第三方库

  • 回答 1

    人工智能是未来发展的一种趋势,也是当下非常流行的行业,是一门包含十分广泛的科学,由不同的领域组合而成,比如说机器学习、计算机视觉等等,研究人工智能涉及的方方面面是非常复杂的,那么为什么说做人工智能使用python比较好呢?1、Python遵循简单、优雅...

  • 回答 2

    Python 是脚本语言,也就是中间件语言,其内核仍然百是纯 c 的性能表达的,而主要性能消耗在脚本的实时编译上。度而对比c,同样的功能,python可以表达比c更加精炼,当然牺牲了一些性能。如果确实对某知个模组性能不满意,还可以使用 c 编写 Python 模块为其...

  • 回答 3

    1、使用Python进行通用应用程序编程您可以使用Python创建命令行和跨平台GUI应用程序,并将它们部署为自包含的可执行文件。虽然Python不具有从脚本生成独立二进制文件的本机能力,但是可以使用诸如cx_Freeze和PyInstaller之类的第三方包来实现这一点。2、使用P...

  • 回答 3

     ⑴作为初学python的科班出身的小白,python非常简单,非常适合人类阅读。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。  ...

  • 回答 10

    原因一、Python是一种 面向对象的语言谁说程序员找不着对象?在Python里分分钟就可以写个新对象,不喜欢的话甚至还能删掉呢。编程语言两个非常重要的概念,即面向对象与面向过程。举个栗子,当你想吃火锅了,你有两个方式:1、自己出门去菜市场,讲价,买粉...

  • 回答 5
    已采纳

    自学比较慢呢,最好找培训机构学习比较好,有老师指导你也知道怎么学

  • 回答 2

    java是静态类型编程语言python是动态类型java被市场认可和广泛使用三十余年了,比较成熟python近几年刚被市场认可和大量推广,热度比较高python的学习周期短于java

  • 回答 1
    已采纳

    冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素...

  • 回答 1

没有解决我的问题,去提问