03.07 非计算机专业如何快速学会python爬虫?

陈西


作为IT行业从业者,Python是我当下用的最多的语言,可以根据自己的经验给你最靠谱的回答。首先分析一下问题,题目中有3个重点:

  1. 非计算机专业;

  2. 快速;

  3. Python爬虫。

非计算机专业

IT行业是当下最流行的行业之一,入门比较容易,入门之后水比较深。但这行就像网上讨论的那样,工资较高,所以一大批非专业的人想从事这方面的工作。

作为计算机专业的人,我并不认为非计算机专业入行很难。现在网上教程一大堆,各种免费的电子书、IT培训机构流出的视频、各大在线学习网站的免费课……这些资源可以说已经“烂大街”了。所以我觉得,现在非计算机专业入行真的不难。所以题主别有顾虑,找不到相关的资料德华,关注【码农笔记】头条号,可以私信我,无套路,直接给。

快速

Python是一门易读、易维护,并且被大量用户所欢迎的、用途广泛的编程语言。说白了就是好学,再加上其强大的用法简单的本地库和第三方库,使得行业外人士学习、使用起来也相当顺手,无需过多了解计算机基础内容即可上手编写Python程序,所以说“快速”这个点,使用Python是相当明智的。

Python爬虫


>>> 首先我们明确一下爬虫的分类


爬虫分为通用爬虫和聚焦爬虫。

  1. 通用爬虫很好理解,就是大家日常使用的搜索引擎,它们通过用户输入的关键词来进行检索,返回的是网站的URL链接。这一类爬虫遵守爬虫协议,只是根据用户需求对网站进行检索。

  2. 聚焦爬虫就是你想学的东西。不去遵守爬虫协议,对指定网站爬取以获取相应的数据。

>>> 接下来介绍一下爬虫的原理


此话当从万维网创立的目的说起,为了更好的资源共享和信息管理。随着网络的不断发展,数据越来越多,也越来越杂。互联网上出现了大量的冗(rong)余数据,也就是我们常见的垃圾信息。找到有用的信息越来越困难。于是乎,爬虫应运而生,它根据一定的规则,只获取人们想要的内容。

我们平时访问网站的流程是这样的:

  1. 在浏览器中输入网址(URL)

  2. 进入网站,双眼寻找并获取对自己有用的信息

  3. 得到信息后精神、生理(斜眼笑)上得到满足

而爬虫就是根据这一过程进行设计,模拟人的行为对网站进行请求数据,然后将这些数据筛选,整理成有用的信息进行分析。


>>> 最后来聊一聊爬虫的学习路径


  1. Python语法基础[不推荐看视频,直接找廖雪峰的博客,看看文档,照着例子敲敲就好];

  2. 爬虫概念[翻翻我的CSDN:刘坏坏];

  3. 学习一下正则表达式、Xpath等常见的数据筛选方法;

  4. 了解常见的反爬机制[推荐CSDN:考古学家lx];

  5. 多找几个网站,使劲儿爬。

完成以上步骤,你应该就学会爬虫了,学习过程中会遇到其他知识点,可以深入学习,但不要偏离主线。


我是刘坏坏 不仅仅是个码农


码农笔记


最近刚好我也在学习爬虫,就几个问题我来总结一下:

1 为什么会有爬虫?

先举个例子,就针对这次疫情,我想要收集一下全国各省的防疫政策,怎么办呢?

如果没有爬虫,那我只能一个个网站点过去,查看所有的政策,然后把所有的政策都下载到excel里或其它存储设备里。想想这是一个多么繁琐的事情,而且每天都会有新的政策出台,头都大了,所以为了解决这个问题,爬虫来了。


2 什么是爬虫?

还是上面疫情的例子,我们知道几乎每一个疫情政策标题都对应的一个网址,我们打开网址,可以查看到对应的内容,在新的网页中有可能又有新的链接,我们继续把它点开进行查询。

所以,我们可以写一个程序找到所有的标题和网址,然后下载对应的内容,再去打开新网页的网址,下载内容,由此而反反复复。最终由这些链接就组成了一个网状结构,而我们的程序就在这个网状结构中爬来爬去,就像一只爬虫一样。


3 写一个简单的爬虫要有哪些步骤?

1)明确网址。也就是说你都要从哪些网站查询内容

2)下载内容。既然知道了url,那你就需要把它对应的内容下到本地,而网页就是html

3)解析内容。拿到html,它本质就是一个dom树,把你需要的数据解析出来即可。

4)保存内容。解析出来所需数据后,你就可以把它保存到文件或数据库中了。

下图是我绘制的一个简单的爬虫框架:



1)调度器负责URL管理器,网页下载器,网页解析器、数据存储之间的任务派发

2)URL管理器负责访问网页

3)网页下载器负责下载html

4)网页解析器负责解析html,并把有价值的数据交给存储器存储

你完全可以根据上面的框架,写一个简单的爬虫。


如果你嫌费事,当然可以了解下scrapy,webmagic等爬虫框架,基本原理和这个框架都差不多。


再往后面的学习,就看你的实际需求,你可能会遇到登录,验证码,动态页面,服务器反爬,甚至分布式部署的问题,这就要根据你实际需求一点一点去学啦。


小豆君编程分享


从0开始学习python爬虫,大致可以分为以下几个阶段:

1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:变量、数据结构、语法等,基础过的很快,基本上1~2周时间就能过完了,我当时是在这儿看的基础:Python 简介 | 菜鸟教程,百度直接搜索菜鸟教程,或者是廖雪峰python都有基础课程。

2.看完基础后,就是做一些小项目巩固基础,比方说:做一个终端计算器,如果实在找不到什么练手项目,可以在 Codecademy - learn to code, interactively, for free 上面进行练习。

3.如果时间充裕的话可以买一本讲Python基础的书籍比如《Python编程》,阅读这些书籍,在巩固一遍基础的同时你会发现自己诸多没有学习到的边边角角,这一步是对自己基础知识的补充。

4.Python库是Python的精华所在,可以说Python库组成并且造就了Python,Python库是Python开发者的利器,所以学习Python库就显得尤为重要:The Python Standard Library ,Python库很多,如果你没有时间全部看完,不妨学习一遍常用的Python库:Python常用库

5.Python库是开发者利器,用这些库你可以做很多很多东西,最常见的网络爬虫、自然语言处理、图像识别等等,这些领域都有很强大的Python库做支持,所以当你学了Python库之后,一定要第一时间进行练习。

6.学习使用了这些Python库,此时的你应该是对Python十分满意,也十分激动能遇到这样的语言,就是这个时候不妨开始学习Python数据结构与算法,Python设计模式,这是你进一步学习的一个重要步骤:faif/python-patterns

7.当度过艰难的第六步,此时选择你要研究的方向,如果你想做后端开发,不妨研究研究Django,再往后,就是你自己自由发挥了。

写一些简单的爬虫,比如抓取一些网页数据,学习一个月我觉得是可以的。当然这是很基础的一些操作。


文一恒成长记


我来讲一下我学python爬虫时间吧。前年我接触python是因为我们从深圳那边接手了一个项目。项目内容就是进行微服务可靠性验证,说白了就是测服务器的稳定性。你服务部署到一台执行机后,我给你的服务器进行cpu故障注入,内存故障注入等随机因子,然后再去反复的调用服务接口,来测试故障注入后业务的稳定性恢复时长等,要实现这么一个流程,就用到了python+robotframework框架。

我花了2天学习python基础语法,三天学习框架,然后经过两个小时的工作交接,这个执行机这一块的任务就算是给我了,所以,学习主要是专注,还有就是被逼的。

后来承接了这一块业务后,我逐步就完善了python学习。后来觉得selenium框架用起来也很方便,我就尝试用selenium来替代robotframework。但是没有成功,工作量太大了,不过学会selenium。这一个技能让我这两年工作中节省了很多时间。

给你提个学习路径你可以参考。

先学python基础语法,大概学完数据类型,逻辑操作,就差不多了,然后直接去爬百度,爬知乎,爬头条,给自己定一个目标,直接搜源代码,读别人的代码,然后修改代码。这样的速度是最快的。唯一的缺点是很多的地方是知其然不知其所以然。不过这些问题都会在你今后的实践过程中学习到。

这也是我快速学习一门语言的法门。毕竟在工作中,公司不会给你那么多的时间来进行系统的学习,公司需要的是结果。


蜜蜂攻城狮


一、作为初学者,应该如何学python?

很多人对python缩进试的简洁表达不以为然。那些都是已混迹于C和JAVA的老鸟已经习惯了花括号。对于初学者,python语言是最好写,最好读的。

二、追求生产力,应该学python

python是全能语言,社区庞大,有太多的库和框架。你只需要找到合适的工具来实现想法,省去了造轮子的精力。

coder可以写尽可能少的代码来实现同等的功能。“人生苦短,我用python”是至理名言。

如果实现一个中等业务复杂度的项目,在相同的时间要求内,用java实现要4-5个码农的话,用python实现也许只需要1个。这就是python最大的优势了。

三、那么应该如何入门python呢

看书学编辑是效率最低的事情。且不说书的内容基本过时。就是比较较的翻译也很晦涩,照书写了代码跑不通,不断报错。是很打击学习积极性的。

不过,介绍语法的基础书,还是可以买一本,作为手册查阅之用。这类基础书籍买一本就好,找个周末休息时间,一天便可看完。

四、那么应该如何进阶python呢

对python语言有一个全面的了解之后,就可以进阶了。怎么进阶,很简单,找一个你喜欢的领域直接做项目。做WEB网站,做爬虫,都可以的。

首先要找容易上手的教程。网上有SET BY SET这种文字型 教程 ,这种只能做相对简单的项目,如果是复杂一点的是效率那是让人无法忍受的。而且文字教程由于有时效性问题,或是教程本身细节的一些错误,会让人抓狂的。

最好的学习教程,其实就是现在淘宝上贩卖的项目视频教程。这类教程有很多,但是鱼龙混杂,很难去伪存真。当然也有很多技术网站提供官方教程 。比如51cto,极客,慕课,麦子等等,实在是太多太多,价格虽然也不是很贵,但一个课程也是几百块。比如要对WEB开发领域有一个全面的学习,仅一套课程是远远不够的。

最后,一定要坚持!每天坚持进步一点点,最后都会变成巨大的收获。


Ledy


直接在Linux系统里面Scrapy框架,然后想一个项目:这个项目可以将一个网站的内容爬下来








Charles莫比嗨客MbhAi


学以致用!

先想好学了要干啥!



冷眼旁观我这一辈子


对于爬虫初学者,建议先下载八爪鱼爬虫软件感受一下网络爬数据的基本原理。再去学习python语言的request库,有利于快速入门。


IT自由职业者


两种方法:一 自学的话 肯定是要找系统的资料来学,然后还要找一个群或者前辈的朋友一起讨论学,如果没有资料的话 我可以给你! 二 培训的话,肯定是选择好的面授培训班最好,这样也有老师教!还要一起学的同学


全阶魔方


作为初学者,找一个网上视频教程,找一个老师可以解答疑惑,学习起来肯定快。有什么问题可以请教。作为非计算机专业不建议一个人学习,爬虫简单的很好做,如果有反爬机制,是要自己有解决的能力,涉及的知识就比较多,前端后端都要至少懂点。


分享到:


相關文章: