Python爬虫:让“蜘蛛”帮我们工作

互联网是一个巨大的资源库,只要方法适当,就可以从中找到我们所需的数据。对于少量的数据,可以人工去找。但是对于大量的数据,如果在获取数据之后还要进行分析,则靠人工无法完成任务,这时就需要通过计算机程序帮助我们完成任务,这种程序就叫作 网络爬虫 (又叫作网页蜘蛛、网络机器人)。

“虫子”的第 1 阶段工作——爬取数据

爬取数据一般指从指定的网址爬取网页中的HTML代码,爬取数据的核心是网络通信,可以使用Python官方提供的urllib.request模块实现,代码如下:

“虫子”的第 2 阶段工作——解析数据

BeautifulSoup 库是一个可以从HTML或XML文档中提取数据的Python库。安装BeautifulSoup库的pip指令如下:

pip install beautifulsoup4

在 Windows 平 台上通过命令 提示符安装 BeautifulSoup 库的过程如下图所示 。 其他平 台的安装过程类似 , 这里不再赘述 。

解析HTML数据是通过BeautifulSoup对象实现的,BeautifulSoup对象的常用函数如下。

    find_all(tagname):根据标签名返回符合条件的所有元素。 select(selector):通过CSS中的选择器查找符合条件的所有元素。 find(tagname):根据标签名返回符合条件的第一个元素。 get(key, default=None):获取标签属性的值,key表示标签属性名。

BeautifulSoup常用的属性如下。

    title:获取当前HTML页面title属性的值。 text:返回标签中的文本内容。

从HTML代码中解析出图片网址的代码如下:

“虫子”的第 3 阶段工作——下载图片

“虫子”的第3个阶段工作是存储数据。但就本例而言主要是根据图片的网址下载图片。

  1. html.parser:用Python编写的解析器,速度比较快,支持Python 2.7.3和Python3.2.2以上版本。
  2. lxml:用C语言编写的解析器,速度很快,依赖于C库,在CPython环境下可以使用它。
  3. lxml-xml:用C语言编写的XML解析器,速度很快,依赖于C库。
  4. html5lib:HTML5解析器,通过HTML5算法解析文件,容错性好,但速度慢。

下载图片的代码如下:

本文节选自 《看漫画学Python 2: 有趣、有料、好玩、好用(全彩进阶版)》

进阶版是在《看漫画学Python》的基础上讲解Python进阶的知识,如果你看过《看漫画学Python》,那么你一定很喜欢《看漫画学Python 2》。

这两本书的内容不冲突, 一本讲Python入门,一本讲Python进阶, 内容完美衔接!

各位漫学粉儿们不要错过呀!

经验分享 程序员 微信小程序 职场和发展