《老鸟python 系列》视频上线了,全网稀缺资源,涵盖python人工智能教程,爬虫教程,web教程,数据分析教程以及界面库和服务器教程,以及各个方向的主流实用项目,手把手带你从零开始进阶高手之路!点击 链接 查看详情

爬虫教程

阅读:207577087    分享到

五年前,我写了第一个网络爬虫系列教程,一年之内累计阅读量近 900 万,作为网络爬虫的启蒙教材,帮助了大多数人成为了网络爬虫开发方面的程序员。

随着技术日新月异的发展,网络爬虫方面的技术栈已经非常成熟,这次,我准备把网络爬虫方面涉及到的知识点全部写出来,并且附带各种丰富的案例,以零基础为起点,循序渐进,最终让你成为网络爬虫方面的专家。

本教程特点

免费、中文、零基础,丰富的项目案例,基于最新版 Python 3 语言,各种主流网络爬虫库和解析库,带你从零开始一步步成为网络爬虫专家。

本教程在讲解每个知识点时,都附带一个丰富并实用的项目,让你在学习过程中,不知不觉中成为网络爬虫方面的高手,无论以后去企业从事网络爬虫开发,还是自己接项目赚外快,都游刃有余。

什么是网络爬虫

网络爬虫又被称为网页蜘蛛,网络机器人,网络爬虫是一种按照一定的规则,自动的抓取互联网信息的程序或者脚本。换一种说话就是:用程序模拟人上网操作浏览器,也就是你想在浏览器做的事情都通过爬虫程序去做。当然,你通过浏览器做不到的事情,网络爬虫程序也做不到。

学习网络爬虫需要什么知识

要学习 Python 网络爬虫,我们要学习的共有以下几点。

Python 基础知识:首先,我们要用 Python 写爬虫,肯定要了解 Python 的基础,万丈高楼平地起,不能忘啦那地基,前面在第一部分 Python 核心基础知识中我们已经学习了全面的学习了 Python 的基础知识。如果你对 Python 语言不太熟悉,可以参考 Python3 教程

Python 自带的网络库 urllib:urllib 库是学习 Python 爬虫最基础的库,利用这个库我们可以很容易爬取网页的内容,理论上来说,使用该网络库可以爬取任何网页的内容。

正则表达式:正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。对于爬取的网页内容,我们可以通过正则表达式对内容进行提取分析,得到我们想要的结果。当然,实际项目开发中,我们一般很少使用正则表达式,我们一般都是用专业易用的 HTML 解析库,比如 Beautifulsoup 和 Xpath 等等。

Python 第三方网络库 requests:requests 库要比 urllib 库更加好用,功能更强大,并且自带 Cookie 处理的 API,在企业开发中,requests 库使用最多。

万能爬虫库 Selenium:Selenium 可以驱动浏览器去访问网站,通过浏览器拿到网站的内容,所以,任何可以通过浏览器访问的网站,通过 Selenium 都可以爬取下来,所以,Selenium 又称为万能爬虫库。当然,如果你浏览器都没法访问的网站,你无论使用什么技术也拿不到。我专门写了一个 Selenium 教程,如果你想更详细的学习 Selenium,请参考 selenium 教程

可以做

Python 爬虫框架 Scrapy:我们不用网络爬虫框架也可以做出企业级项目爬虫需求,但在开发爬虫项目过程中,我们会做很多重复工作,比如网页 DOM 树解析,规则匹配,user-agent 模拟,数据入库等等。Scrapy 网络爬虫框架会帮我们建立结构式的框架,提供丰富的功能完成项目需求,大大简化了我们的项目流程。以下是 Scrapy 网络爬虫框架的官网:https://doc.scrapy.org/en/latest/

HTML 解析库 Beautifulsoup 和 Xpath:HTML 文档格式解析是个繁重的工作,如果我们只使用正则表达式进行解析,不但写起来困难,而且代码可读性太差,项目基本难以维护,而 Beautifulsoup 和 Xpath 提供丰富易懂的 API 可以完全解析 HTML 文档,我们只需要调用几个函数就可以从 HTML 文档中提取出来我们想要的任何东西。所以,在企业开发中,我们基本上不会使用正则表达式,而是使用这些功能强大且易用的 DOM 解析库。

HTTP 协议相关知识:我们使用的所有网络爬虫库都是基于 HTTP 协议的,我们的网络爬虫程序,就是通过网络爬虫库使用 HTTP 协议和网站后台通信获取网站的内容。就如我们使用浏览器访问网站一样,浏览器就是通过 HTTP 协议和网站后台通信获取网页内容,并显示在浏览器上。

网站前端和后端运行原理:学习网络爬虫,想使用好网络爬虫库,就需要对网站后端开发有一定的了解。同样想更熟练的提取网页内容就需要对前端有一定的了解。

异步并发编程:如果我们想做异步高并发的网络爬虫程序, 对异步网络编程就需要有一定的了解,比如多进程,多线程和协程。 相关知识可以参考 多进程、多线程和协程

本章重要知识点

知道网络爬虫的概念。

知道做网络爬虫需要学习哪些知识。


如果以上内容对您有帮助,请老板用微信扫一下赞赏码,赞赏后加微信号 birdpython 领取免费视频。


登录后评论

user_image
fengfeng000123
2021年10月26日 23:34 回复

该评论已被屏蔽