DC免费课程(一)|啥?手把手教小白python爬虫!



这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源。看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬虫的大门啦~

话不多说,今天为你奉送两节入门干货教程~

啦啦啦开课啦,看黑板,都看黑板~

1. 安装Anaconda

在我们的教学中,我们使用的版本是Python3,至于为什么要选Python3,哼哼!

DC免费课程(一)|啥?手把手教小白python爬虫!

工欲善其事,必先利其器,在学习爬虫之前,你得先搭建自己的编程环境。废话不多说,按照下面的方法搭建吧:

1.1 下载Anaconda

打开Anaconda网页后,看到这样的页面:

DC免费课程(一)|啥?手把手教小白python爬虫!

根据你的电脑系统,选择相应版本的 Anaconda(记住选择 Python 3.6 的版本),Mac OS 用户选择 Mac 版本即可,如果不想麻烦,请选择 Graphical Installer。

1.2 安装 Anaconda

选择默认位置安装即可:

DC免费课程(一)|啥?手把手教小白python爬虫!

两个选择框都勾上,安装:

DC免费课程(一)|啥?手把手教小白python爬虫!

1.3 在开始菜单中查看 Anaconda

Anaconda 装好之后,可以在开始菜单查看。可以看到包含了如下图所示的组件:

DC免费课程(一)|啥?手把手教小白python爬虫!

之后我们会用到的主要是:

Anaconda Prompt:Anaconda 自带的命令行

Jupyter Notebook:一个简单易用、适合入门的 IDE

2.安装常用包

2.1 安装 Python 包 requests

打开 cmd 终端,输入 pip install requests,若安装不成功,可以尝试:conda install requests

DC免费课程(一)|啥?手把手教小白python爬虫!

出现 Successfully installed,即表示成功安装。若需检测,先输入 Python,再输入 import requests,未出现报错,表示安装成功,可以正常使用。注:操作完记得退出:quit()。

如果安装时显示 conda 不是内部或外部命令,用下面的方式安装(如未报错则不必用下面的方法)

  • 在开始菜单打开 Anaconda Prompt:

  • DC免费课程(一)|啥?手把手教小白python爬虫!

  • 在 Anaconda Prompt 输入 conda install requests:

  • DC免费课程(一)|啥?手把手教小白python爬虫!

    2.2 安装 Python 包 lxml

    同样在终端输入: conda install lxml,出现 Successfully installed,即表示成功安装,若不能成功安装,请尝试如下方法。

  • 前往 http://www.lfd.uci.edu/~gohlke/pythonlibs/,手动下载需要安装的第三方包(注意对应你的python版本是32位还是64位)。

  • DC免费课程(一)|啥?手把手教小白python爬虫!

  • 在下载下来的文件所在目录按住shift并点击鼠标右键,选择在此处打开Powershell窗口,在此命令行中使用 pip install + 下载下来文件全名 ,即可完成安装。

  • DC免费课程(一)|啥?手把手教小白python爬虫!

    所以你该知道如何安装 Python 包了吧,通用方法是,在终端输入:conda install + 包名称或者 pip install + 包名称。出现特殊的不能安装的情况,可以去下载之后进行安装。

    3.Jupyter Notebook

    3.1 开启Jupyter Notebook

    在开始菜单打开 Jupyter Notebook:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    Jupyter 将会在网页中自动打开:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    3.2 Jupyter Notebook 界面

    Files:你当前工作环境下的所有项目(代码)、默认存储的文件都在这里:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    Runing:你目前正在运行的项目都在这里:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    3.3 新建一个文档,开始写代码

    依次点击右上方 :New > Python 3,即新建了一个 Ipython 文件,如图:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    点击上方 Utitled 可以更改文档的名称,下面的空间就可以写代码啦:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    3.4 Jupyter Notebook 功能简介

    DC免费课程(一)|啥?手把手教小白python爬虫!

    4.创建第一个实例:爬取百度首页

    仅用四行代码,我们就可以把百度首页的内容下载下来:

    1.导入 requests 库;2.下载百度首页内容;3.更改编码;4.打印内容

    DC免费课程(一)|啥?手把手教小白python爬虫!

    5.爬虫原理

    5.1 爬虫基本原理

    听了那么多的爬虫,到底什么是爬虫?爬虫又是如何工作的呢?我们先从“爬虫原理”说起。

    爬虫又称为网页蜘蛛,是一种程序或脚本。但重点在于:它能够按照一定的规则,自动获取网页信息。爬虫的通用框架如下:

    1.挑选种子URL;

    2.将这些URL放入待抓取的URL队列;

    3.取出待抓取的URL,下载并存储进已下载网页库中。此外,将这些URL放入待抓取URL队列,进入下一循环;

    4.分析已抓取队列中的URL,并且将URL放入待抓取URL队列,从而进入下一循环。

    DC免费课程(一)|啥?手把手教小白python爬虫!

    咳咳~

    还是用一个具体的例子,来说明吧!

    5.2 一个爬虫例子

    爬虫获取网页信息和人工获取信息,其实原理是一致的,比如我们要获取电影的“评分”信息:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    人工操作步骤:

  • 获取电影信息的页面

  • 定位(找到)到评分信息的位置

  • 复制、保存我们想要的评分数据

  • DC免费课程(一)|啥?手把手教小白python爬虫!

    爬虫操作步骤:

  • 请求并下载电影页面信息

  • 解析并定位评分信息

  • 保存评分数据

  • 感觉是不是很像?

    5.3 爬虫的基本流程

    简单来说,我们向服务器发送请求后,会得到返回的页面,通过解析页面之后,我们可以抽取我们想要的那部分信息,并存储在指定的文档或数据库中。这样,我们想要的信息就被我们“爬”下来啦~

    6.Requests+Xpath 爬取豆瓣电影

    Python 中爬虫相关的包很多:Urllib、requsts、bs4……我们从 requests+xpath 讲起,因为太容易上手了!学习之后你就会发现,BeautifulSoup 还是稍微有点难的。

    下面我们用 requests+xpath 爬取豆瓣电影:

    6.1 安装 Python 应用包:requests、lxml

    如果是首次使用Requests+Xpath,首先需要安装两个包:requests和lxml,在终端分别输入以下两行代码即可(安装方法在第1节中已讲过):

    DC免费课程(一)|啥?手把手教小白python爬虫!


    DC免费课程(一)|啥?手把手教小白python爬虫!

    6.2 导入我们需要的 Python 模块

    我们在jupyter中编写代码,首先导入我们需要的两个模块:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    Python中导入库直接用”import+库名“,需要用库里的某种方法用”from+库名+import+方法名“。这里我们需要requests来下载网页,用lxml.etree来解析网页。

    6.3 获取豆瓣电影目标网页并解析

    我们要爬取豆瓣电影《肖申克的救赎》上面的一些信息,网站地址是:

    http://movie.douban.com/subject/1292052/

    DC免费课程(一)|啥?手把手教小白python爬虫!

    给定 url 并用 requests.get() 方法来获取页面的text,用 etree.HTML() 来解析下载的页面数据“data”。

    DC免费课程(一)|啥?手把手教小白python爬虫!

    6.4 获取电影名称

    获取元素的Xpath信息并获得文本:

    DC免费课程(一)|啥?手把手教小白python爬虫!


    这里的“元素的Xpath信息”是需要我们手动获取的,获取方式为:定位目标元素,在网站上依次点击:右键 > 检查

    DC免费课程(一)|啥?手把手教小白python爬虫!

    快捷键“shift+ctrl+c”,移动鼠标到对应的元素时即可看到对应网页代码:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    在电影标题对应的代码上依次点击 右键 > Copy > Copy XPath,获取电影名称的Xpath:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    放到代码中并打印信息:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    6.5 代码以及运行结果

    以上完整代码如下:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    在 Jupyter 中运行完整代码及结果如下:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    至此,我们完成了爬取豆瓣电影《肖申克的救赎》中“电影名称”信息的代码编写,可以在 Jupyter 中运行。

    6.6 获取其它元素信息

    除了电影的名字,我们还可以获取导演、主演、电影片长等信息,获取的方式是类似的。代码如下:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    观察上面的代码,发现获取不同“主演”信息时,区别只在于“a[x]”中“x”的数字大小不同。实际上,要一次性获取所有“主演”的信息时,用不加数字的“a”表示即可。代码如下:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    完整代码如下:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    在jupyter中运行完整代码及结果如下:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    7.关于Requests

    Requests库官方的介绍有这么一句话:Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。

    这句话直接并霸气地宣示了 Requests 库是 python 最好的一个HTTP库。为什么它有这样的底气?如有兴趣请阅读 Requests 官方文档 。

    Requests 常用的七种方法:

    DC免费课程(一)|啥?手把手教小白python爬虫!

    8.关于解析器Xpath

    Xpath 即为 XML 路径语言(XML Path Language),它是一种用来确定 XML 文档中某部分位置的语言。

    Xpath 基于 XML 的树状结构,提供在数据结构树中找寻节点的能力。起初 Xpath 的提出的初衷是将其作为一个通用的、介于 Xpointer 与 XSL 间的语法模型。但是Xpath 很快的被开发者采用来当作小型查询语言。

    可以阅读该文档了解更多关于 Xpath 的知识。

    Xpath解析网页的流程:

    1.首先通过Requests库获取网页数据

    2.通过网页解析,得到想要的数据或者新的链接

    3.网页解析可以通过 Xpath 或者其它解析工具进行,Xpath 在是一个非常好用的网页解析工具

    DC免费课程(一)|啥?手把手教小白python爬虫!

    常见的网页解析方法比较

    DC免费课程(一)|啥?手把手教小白python爬虫!

  • 正则表达式使用比较困难,学习成本较高

  • BeautifulSoup 性能较慢,相对于 Xpath 较难,在某些特定场景下有用

  • Xpath 使用简单,速度快(Xpath是lxml里面的一种),是入门最好的选择

  • 好了,这节课就到这里!

    DC免费课程(一)|啥?手把手教小白python爬虫!

    温馨提示:关注微信公众号,回复关键词“爬虫基础”获取免费课程PPT,赶快学习起来吧~

    DC免费课程(一)|啥?手把手教小白python爬虫!