• 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进阶, 内容完美衔接!

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

  • 相关阅读:
    去重的方法
    数仓之全量表、增量表、快照表、切片表、拉链表
    【Qt炫酷动画】1.easing官方demo详细剖析
    Selenium4+Python3系列(六) - Selenium的三种等待,强制等待、隐式等待、显式等待
    JAVA代码实现十大经典排序算法
    Flutter实用工具Indexer列表索引和Search搜索帮助。
    什么是Java?
    对拍程序的写法
    距平图(标签-AR)
    【23真题】C9无歧视,专业课均分130!
  • 原文地址:https://blog.csdn.net/weixin_41986518/article/details/126718719