python学习爬虫,不会前端和全栈可以吗?为何?

印度行万里归来颜愈少


我就理解为不会前端和后端(全栈这个概念太大了)。不会当然可以,但是需要大概去了解。其实你从最基础的爬虫开始做,看一些入门的资料什么的,自然而然就能明白一些了,因为爬虫就是和这些打交道的。就像你去一个地方,那个地方的人都说方言,久而久之,你尽管不会说,大概也能明白说的是什么了。


这辈子就python了


很高兴回答你的问题。要回答这个问题,我们首先我们得先明白另外一个问题。

什么是全栈工程师?

广义上的全栈工程师包括的是大前端(Web、App等)、后端(视技术栈而定的Java、php等)、运维,集整个常见工种于一体的工种。

但是发展到了现在,很多人把会Web前端和后端的人员称为全栈,其实我更愿意称之为「伪全栈」。

弄懂了全栈的含义其实就不会存在题中的「前端和全栈」这种叫法了。

然后我们再来说说学习python爬虫需要学习写什么了。情况得分为两种来讨论。

一、有一定开发基础的学习人员

如果你已经有了一定的开发基础。你需要学习以下知识。

  1. python:你想要学习python爬虫,你首先得会python。python爬虫,只是python应用的一个分支。

  2. 数据库:爬虫抓取下来的东西,总得有地方存储吧,存储就得用到数据库。

  3. 前端:包括html、css、js等。爬虫分为直接爬取页面、爬取接口、使用仿浏览器库进行爬取。无论哪种方法,都是从前端出发,需要了解你爬取的数据从哪儿来,展示在哪儿。这些都需要用到前端知识,所以前端是一个绕不去的坎儿。

  4. 各种反爬知识:<strong>现在各大网站都采取了各种各样的反爬机制。包括但不仅限于IP访问次数限制、自定义加密自己、验证码、Cookie验证等等。反爬策略一直在升级,可能你今天写的爬虫,明天网站就升级反爬策略了,所以一个爬虫需要不断的投入精力进行维护、升级。

二、零基础的学习人员

针对零基础的学习人员,除了和有开发基础的学习人员学习的一样以外,还需要学习计算机编程的通用知识。包括但不仅限于:计算机网络、数据结构、算法等。


Java面典


全栈只是个概念 也分很多种类 真正的全栈工程师涵盖了web开发 DBA 爬虫 测试 运维,要学的内容那是相当的巨量。就web开发方向而言需要学习的内容:前端知识 包括HTML5 CSS3 JS Jquery Ajax,后端至少需要能够熟练使用 Django和tornado 当然会flask更好

Python全栈工程师是比较受欢迎的一类人才,本身Python语言具备全端开发的能力,所以Python的全栈工程师也比较多。

对于Python全栈工程师来说,需要掌握以下知识结构:

第一,Python语言基本语法。Python语言的基本语法掌握起来并不困难,甚至可以说非常简单,因为Python是脚本语言,所以语法也比较直接

第二,Python做Web开发。

Python是Web开发的传统三大解决方案之一(还包括Java和PHP),Web开发是全栈工程师必须掌握的内容。用Python做Web开发需要学习对应的框架,比如Django。

第三,Python做数据分析。Python做数据分析是一个比较常见的应用场景,Python做数据分析需要学习对应的算法以及实现过程。会使用到的库包括Numpy、matplotlib等。

第四,Python做爬虫。Python做爬虫应用是一个非常常见的应用,有大量的案例可以参考。

第五,Python做机器学习类应用。Python目前在机器学习领域(人工智能相关)的应用非常普遍,所以对于Python全栈工程师来说,掌握机器学习相关的内容也是有必要的。需要掌握的算法包括决策树、朴素贝叶斯、回归、kNN分类等,同时需要掌握基本的线性代数和概率论相关知识。

当然python也有它的不足之处,就是慢,比C、C++、java都慢,这一点是限制它的一点,因为在不少领域对语言的运行速度都有极致的要求,你比如说导弹拦截程序,分秒必争,显然python在第一步就会被pass掉。但是对于其它领域,你比如说桥梁参数的运算,我相信20分钟和18分钟它差不了多少。第二点就站在功利的角度来谈了,就是目前计算机等级考试中没有python这个选项,当然我相信10年之后,或许是5年,我们就可以拿到python的计算机等级证书啦。


路西法李


如果你想深入学习爬虫,那你肯定绕不过前端的知识,html+css+javascript更是其中的基础知识了。

不过话说回来,你如果仅仅是想学习爬虫拿来用,也不一定要系统地去学这些东西。有个名词叫“学以致用”,你可以直接通过搜索“python爬虫入门”,你就可以短时间学会简单的爬虫了。

但是长远来说,你现在学会的这点小技巧,你是没有办法更灵活地使用爬虫来满足自己的需求的。

爬虫

爬虫爬的究竟是什么?通俗地说就是用编程的方式,让计算机代替我们收集数据,其中爬的便是我们想要得到的公开数据。

一般来说,只要是通过浏览器看到的信息都是可爬的,但是这其中会涉及到一些技术和法律上的问题。

比如技术上,你想爬虫,平台会有反爬手段,如果判定你频繁爬取信息,那你通过此IP将无法正常访问信息。其中的IP、浏览器头信息、referer等技术手段,用得好的话都可以让无虫可爬。

法律上,如果你爬取非公开数据,或者你高频爬取导致平台服务出现问题的,你很可能要到某个地方呆上一段时间。这个其实也可以理解,人家辛苦呈现的数据,被你反手一爬就爬完了,平台不是很冤吗?

所以爬虫有风险,下手需谨慎。

前端

前端是现在互联网内容服务中不可或缺的一员,它担当了直接与用户交互的所有内容。

一般来说,IT开发主要分为两个端,一个是前端,另一个则是后端了。

后端负责业务逻辑,前端负责页面交互。

由于爬虫主要是爬取显示出来的东西,所以要学习的内容更多是前端这一块,比如页面是由什么组成?页面是怎么交互的?数据是从哪个接口取的?

入门爬虫

如果是选择用python爬虫,那么scrapy框架将非常适合。

这个框架可以让你快速学会怎么爬虫,并且也很容易扩展功能来满足其它的需求。


小白践行


JAVA5年老鸟,Python熟悉

Python爬虫就是获取书局 捷信数据(包含解析html网页)

所以 前端会的话才是一个合格的Python爬虫工程师 不然遇到html页面数据束手无策。解析数据能入库就更好啦,那么数据库知识有助于你存储。

总结一下,学习爬虫前端必须要学一下,全栈不必要,会的话更好[来看我]




闭着眼睛切土豆


你好,Python爬虫与前端后端都有一定的知识相关。但是不必专门去学习这方面内容。

Python爬虫可以直接通过读两本相关书籍就开始上手了。

一般爬虫会涉及到,数据采集,数据清洗,数据存储,数据展示等。

如果说涉及前端部分的内容就是数据展示部分。将你爬去的数据进行展示在网页中让人直观的看,但是在Python中会有相同的库作为替换,所以你可以不用学习前端知识也能完成这个目的。

如果说涉及后端部分的内容就是数据的存储,把你当爬虫数据存储到数据库中。这一步,你也可以有替代方案,把数据存储在txt文件中,excel文件中都是可以的。这样你就不用花费时间专研数据库等后端知识。

最后,数据采集部分,会涉及一些网络知识,但是由于现在的Python第三方库已经很成熟,你很多只要查看文档理解如何用即可,初期不用探究底层原理。也能够完成你的数据采集工作。

数据清洗,就是通过Python变成语言来进行操作,找到你需要的内容,这部分就是主要你来完成和学习的编程内容了。


链求君


首先要明确一点,python只不过是一个工具,学会了使用工具不代表你就能找到工作,要有用工具处理问题的能力才符合工作需求!就像爬虫工程师,java也能实现,想要靠你学的python找到工作,实践经验才是加分项!

回到问题,针对python的面试一般会涉及到下面几个部分:

一、python基础知识

爬虫给人的感觉就是对于Python编程的知识要求并不高,确实,搞懂基本数据结构、语句,会写写函数好 像就OK了。

自己业余玩玩还OK,如果你要找工作成功爬虫工程师,扎实的编程基础是必不可少的。除了基本的函数,Python的高级特性、面向对象编程、多线程、装饰器都要熟悉。

现在很多爬虫工程师的面试,对编程的基本功要求很高。编程的功底,以及对语言的理解,从某种程度上可以看出你的学习能力、发展潜力。 比如: Python2.x与Python3.x的区别 Python的装饰器 Python的异步 Python的一些常用内置库、多线程......

二、数据结构与算法

数据结构与算法是对面试者尤其是校招生面试的一个很重要的点,小公司可能不太在意。 从目前的招聘情况来看:重视数据结构与算法的重视程度与企业的好坏成正比。

三、Python爬虫

会爬虫和爬虫厉害是两码事,你要有Python爬虫相关的知识与经验储备,这通常也是面试官考察的重点。

包括但不限于: 你用过多线程和异步吗?除此之外你还用过什么方法来提高爬虫效率? 有没有做过增量式抓取? 对Python爬虫框架是否有了解?

一般来说,你需要掌握的技术有下面几个:

HTTP必须要有很深刻的理解,这是你纵横网络的立身之本;

BeautifulSoup、xpath这些都是基础操作了,一定要做到非常熟练;

Scrapy框架要会用,要能信手捏来写个分布式爬虫;

Webdriver、Selenium、PhantomJS也要会使用;

四、爬虫相关的项目经验

爬虫重在实践,除了理论知识之外,面试官更在乎: 你做过哪些爬虫项目?如果有Github最好 你认为你做的最好的爬虫项目是哪个?其中解决了什么难题?有什么特别之处? 以上是我在面试过程中,会碰到的一些技术相关的问题的总结,当然面试中不光是技术这一点,但是对于做技术的,过了技术面基本上就是薪资问题了。

五、面试经

初级:

网络基础:cookie,session,https,h


两个苹果的世界


这个问题其实可以定位为一个领域相关的问题。

上面的问题可以转化为不了解前端方向和服务端方向的知识,可以学习网络数据抓取方向相关的知识么?


答案是可以的。


图1


可以将上述领域的知识相关性抽象成图1。几个领域之间只有小部分交集,并且它们之间没有必然的先后关系。举例来解释这里的先后关系,例如前端并不是网络抓取方向的基础知识。所以学习网络抓取领域的知识并不需要先学前端。

  • 在学习过程中,可以先将网络抓取相关的知识列举出来,整理出一条学习路线,然后按照整理的路线学习就可以了,学习过程中注意多实践。

  • 对于学习中需要解决两个问题,一个是深入理解,第二个是增加相关知识提取能力,这两点都可以通过实践来加强。
  • 如果学习中遇到其它领域的知识,可以进行一些了解,然后回到主路线继续学习。

城东的花开了


我认为是需要学习的,做爬虫除了需要了解 python 自身的基础,还需要了解 HTTP 的基础知识,对全栈的了解是跑不了的。我们从静态页面的抓取到动态生成内容的抓取,web 前端全家桶(尤其是 DOM)也是需要的。此外需不需进一步控制浏览器呢,selenium,CDP (Chrome Devtools Protocol) 各路神仙一招呼,这些更是 web 前端和 HTTP 和网络的深度结合。


砖加号


爬虫它本质就是利用程序模拟各种网络请求然后获取网页里面的信息。所以如果看不懂网页源码是无法做好一个爬虫的。建议学一点点前端,做到能看懂前端网页源码即可。不用深学前端。Python这块不要造轮子,可以用许多爬虫包。网上有很多博客,可以找一个博客然后实践。不动手肯定会觉得非常难,事实上动手做一个爬虫后就会知道并不难。


分享到:


相關文章: