我觉得还是有必要学习的,不是说什么都要学,但至少前端至少要能看懂前端代码。爬虫的本质就是用一个程序模拟各种网络请求,然后获取网页中的信息。如果不了解网页的源代码,就不能成为一个好的爬虫。想要深入学习爬虫,一定不能绕过前端知识,而html+css+javascript是基础知识。对于全栈来说,这个概念太大了。当然,最好有一个大概的了解。爬行动物处理这??些。01掌握爬虫技术爬虫需要掌握以下技术:①必须深入理解HTTP,它是你纵横网络的基础②BeautifulSoup和xpath是基本操作,必须会非常熟练③必须会使用Scrapy框架,必须会手写分布式爬虫。④您还必须能够使用Webdriver、Selenium和PhantomJS。所以想要入门Python爬虫,首先要解决四个问题:(1)熟悉Python编程(2)了解HTML(3)了解网络爬虫的基本原理(4)学习使用python爬虫库02基础语言:Python编程首先下载python版本;python2和python3如何选择?我个人推荐Python3。毕竟Python3才是未来的方向。现在大部分学习教程都更新到了Python3。当然这不是选择Python3的要求,大家可以根据自己的需要来选择。选择适合自己的开发工具;python常用的开发工具有:pycharm、VisualStudioCode、SublimeText、anaconda,但推荐使用pycharm。最后的项目实践;可以在网上找一些实用的网站,实践项目,比如实验楼、Github、开源中国等网站。里面有很多优质的练习项目,大家可以自己找。可以写一些python小项目案例来提高自己的编程能力。基础实战:->文件的基本操作->异常处理的解决方案->熟练库的安装和使用->能看懂简单的错误信息,知道如何排错03爬虫四步爬虫其实就是网络数据集合更容易理解。就是通过编程向web服务器请求数据(HTML形式),然后解析HTML提取出你想要的数据。根据url获取HTML数据,解析HTML,获取目标信息,存储数据,重复第一步。一般爬虫都会涉及到数据采集、数据清洗、数据存储、数据展示等,如果说前端部分相关的内容就是数据展示部分,就是把你爬取的数据展示在网页上,让人直观的看到.但是在Python中会有相同的库作为替代品,所以你可以在不学习前端知识的情况下做到这一点。如果后端相关的内容是数据的存储,那么把你的爬虫数据存储在数据库中。在这一步,你也可以有替代方案,将数据存储在txt文件或者excel文件中,这样就不用花时间在数据库等后端知识上了。最后是数据收集部分;会涉及到一些网络知识,但是目前Python的第三方库已经很成熟了,很多人只需要查看文档就可以了解如何使用了。前期无需探究底层原理,即可完成数据收集工作。数据清洗就是把Python变成一种语言来进行操作,找到你需要的内容。这部分是你主要完成和学习的编程内容。04几个常用的爬虫库urlliburllib是python中请求url链接的标准库。无需安装即可直接使用。并提供以下功能:网页请求、响应获取、代理和cookie设置、异常处理、URL解析;如果想系统的学习urllib库,可以直接阅读它的官方文档。主要包含以下模块:urllib.request:用于打开和读取URLurllib.error:包含urllib.requesturllib.parse引发的异常:用于解析URLurllib.robotparser:用于解析robot.txt文件,其中urllib.request,urllib.error的两个库在爬虫程序中经常使用。Request使用Request伪装成浏览器发起HTTP请求;如果headers中的User-Agent没有设置,默认的User-Agent是Python-urllib/3.5。有些网站可能会拦截请求,因此需要伪装成浏览器发起请求。我使用的User-Agent是Chromeimporturllib.requesturl="http://tieba.baidu.com/"headers={'User-Agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/56.0.2924.87Safari/537.36'}request=urllib.request.Request(url=url,headers=headers)response=urllib.request.urlopen(request)print(response.read()。decode('utf-8'))Request高级用法如果我们需要给请求添加代理,处理请求的Cookies,就需要用到Handler和OpenerDirector。(1)HandlerHandler可以处理请求中的各种事情(HTTP、HTTPS、FTP等);它的具体实现是这个类urllib.request.BaseHandler;它是所有Handlers的基类,提供了最基本的HandlerMethods。例如default_open()、protocol_request()等;继承的BaseHandler有很多,我列举几个比较常见的:ProxyHandler:为请求设置代理HTTPCookieProcessor:处理HTTP请求中的CookiesHTTPDefaultErrorHandler:处理HTTP响应错误。HTTPRedirectHandler:处理HTTP重定向。HTTPPasswordMgr:用于管理密码,它维护了一张用户名和密码表HTTPBasicAuthHandler:用于登录认证,一般与HTTPPasswordMgr配合使用。(2)OpenerDirector对于OpenerDirector,我们可以称之为Opener。其实就是urllib提供的一个Opener,那么Opener和Handler是什么关系呢?opener对象由build_opener(handler)方法创建;如果我们需要创建一个自定义的opener,我们需要使用install_opener(opener)方法。值得注意的是,install_opener的实例化会得到一个全局的OpenerDirector对象。BeautifulSoupBeautifulSoup4是爬虫必学的技能;BeautifulSoup的主要功能是从网页中抓取数据。BeautifulSoup自动将输入文档转换为Unicode编码,并将输出文档转换为utf-8编码。一个灵活方便的网页解析库,处理效率高,支持多种解析器。使用它,您无需编写正则表达式即可轻松提取网页信息。BeautifulSoup支持的解析器Python为我们提供了lxml、BeautifulSoup、pyquery等解析库,当然还有re。这四个库的对比:->如果你的前端基础比较扎实,用pyquery最方便->BeautifulSoup库,爬虫初学者强烈推荐这个库->re比较快,但是写正则表达式比较麻烦->lxml也比较快。建议使用Re正则表达式对字符串(包括普通字符(例如a和z之间的字母)和特殊字符(称为“元字符”)))进行运算的逻辑公式。是一种文本模式,描述了在搜索文本时要匹配的一个或多个字符串。它的作用是:1.从字符串中匹配满足一定规则的内容,大部分用于爬虫应用。2.字符串内容是否满足某种规则多用于验证用户输入。比如密码是否规范,手机号码是否正确等。这几种库都是比较常见的解析库,新手小白不需要全部精通。熟练使用一两个解析库就足够了,足以应对入门阶段一般爬虫数据的爬取。ScrapyScrapy是一个专业高效的爬虫框架;它使用专业的Twisted包高效处理网络通信,使用lxml(专业的XML处理包),cssselect从HTML页面中高效提取有效信息,还提供有效的线程管理。它可用于一系列程序,包括数据挖掘、信息处理或存储历史数据。结构:5+2结构的5个模块分别是:engine模块+spiders模块(框架入口)+scheduler模块+downloader模块+itempipelines(框架出口)模块2个中间件是:spiderMiddleware和downloaderMiddleware3个数据流路径:1??spiders模块通过engine模块到达scheduler模块(request请求)2??scheduler模块通过engine模块到达downloader模块,返回数据给spider模块3??spider模块分别到达itempipelines模块和scheduler模块引擎模块Scrapy是一个非常主流的爬虫Framework,如果你在写爬虫的时候不知道Scrapy,你就out了!05小结其实只要知道下面的爬虫步骤,大部分爬虫都不会出问题。但!有一个但是!如果你遇到一个做了很多反爬的网站,那你就需要想象做了什么限制,然后模拟限制。这时候就需要一些前端知识了。有时甚至需要阅读页面的JS方法,尝试理解反爬的思路并做出相应的调整。其实爬虫的门槛并不高。只要能正常使用浏览器进行网络操作,就已经可以尝试写一些简单的爬虫了。想要做一个高可用、高并发、速度快的爬虫,需要多了解多线程分发等知识。关注gzh【Python编程学习圈】,了解更多Python技术知识,内容详实丰富,更有海量干货素材免费领取,福利满满!一些特定的网站仍然需要一些专业知识,所以多了解一些技术方面的知识总是好的。
