python爬虫beautiful soup的使用方式

Python爬虫BeautifulSoup的使用方式

介绍

BeautifulSoup是python中的一个html解析库,可以将复杂的html文档转化成一个比较简单的树形结构,以便于我们在程序中对其进行各种操作,例如提取数据、搜索文档等。在爬取网页数据时,BeautifulSoup是常用的工具之一。

安装

在使用BeautifulSoup之前,需要先安装库。可以使用pip工具进行安装,命令如下:

pip install beautifulsoup4

基本使用

使用BeautifulSoup的过程分为以下三个步骤:

  1. 获取html文档
  2. 构造BeautifulSoup对象
  3. 操作BeautifulSoup对象

获取html文档

可以使用python中的urllib库获取html文档。例如获取一个网页如下:

from urllib.request import urlopen
html = urlopen("http://www.example.com")
print(html.read())

构造BeautifulSoup对象

构造BeautifulSoup对象的方式很简单,只需要将获取到的html文档作为参数传入即可。

from bs4 import BeautifulSoup
soup = BeautifulSoup(html, features="html.parser")

操作BeautifulSoup对象

得到BeautifulSoup对象之后,我们可以进行各种操作,例如搜索文档内容、提取文档内容等。搜索文档内容的方式有多种,常用的方式有两种:

  1. 找到第一个符合条件的内容
soup.find('tag', attrs={'attr': 'value'})
  1. 找到所有符合条件的内容
soup.find_all('tag', attrs={'attr': 'value'})

其中,'tag'是html中的标签,'attrs'是标签中的属性名和属性值,例如:

soup.find('h1', attrs={'class': 'header'})
soup.find_all('a', attrs={'href': 'http://www.example.com'})

还可以通过BeautifulSoup对象的属性获取文档内容,例如:

soup.title.string
soup.a['href']

示例

示例一

我们来爬取中国天气网(http://www.weather.com.cn/)今天的天气情况。

from urllib.request import urlopen
from bs4 import BeautifulSoup

html = urlopen("http://www.weather.com.cn/weather/101010100.shtml")
soup = BeautifulSoup(html, features="html.parser")

today_weather = soup.find('p', attrs={'class': 'wea'}).string
today_temp = soup.find('p', attrs={'class': 'tem'}).find('span').string

print("今天的天气情况是{},气温{}".format(today_weather, today_temp))

输出:

今天的天气情况是晴,气温2℃/12℃

示例二

我们来爬取糗事百科热门段子中的内容。

from urllib.request import urlopen
from bs4 import BeautifulSoup

html = urlopen("https://www.qiushibaike.com/")
soup = BeautifulSoup(html, features="html.parser")

items = soup.find_all('div', attrs={'class': 'article'})

for item in items:
    joke = item.find('div', attrs={'class': 'content'}).find('span').get_text()
    print(joke)

输出:

今晚在很高的地方看星星,一个警察前来:“你在这等什么?”
“等朋友。”
“朋友什么时候来?”
“当你妈生我的时候。”
...

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python爬虫beautiful soup的使用方式 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Python标准库calendar的使用方法

    下面是关于Python标准库calendar的使用方法的完整攻略。 标准库calendar calendar是Python标准库中的模块,提供了一些处理日历信息的函数。 calendar模块的导入 在使用calendar库之前,需要先导入calendar模块: import calendar 周相关函数 calendar提供了一些获取与周相关的信息的函数: …

    python 2023年6月2日
    00
  • 浅谈python抛出异常、自定义异常, 传递异常

    浅谈Python抛出异常、自定义异常和传递异常 异常处理是编程中必不可少的部分,能够提高程序的健壮性和可读性。Python中的异常处理机制提供了非常方便和灵活的方法。 Python中抛出异常 抛出异常可以在代码运行过程中发现错误,主动终止程序的运行。 Python中内置了许多异常类型,比如 IndexError、KeyError 等等,还有 Exceptio…

    python 2023年5月13日
    00
  • python爬取本站电子书信息并入库的实现代码

    本攻略将介绍如何使用Python爬取本站电子书信息并将其存储到数据库中。我们将使用requests库和BeautifulSoup库爬取网页数据,并使用sqlite3库将数据存储到SQLite数据库中。 爬取数据 我们可以使用Python的requests库和BeautifulSoup库爬取本站电子书信息。以下是一个示例代码,用于爬取电子书信息: import…

    python 2023年5月15日
    00
  • 对python_discover方法遍历所有执行的用例详解

    题目中提到的 python_discover 方法是 unittest 测试框架中的一个方法,其主要功能是遍历指定路径下的所有测试用例文件,自动组装这些文件中的测试用例,方便进行统一测试。 本文将详细讲解如何使用 python_discover 方法来遍历所有执行的用例: 第一步:创建测试用例文件 为了能够使用 python_discover 方法,我们需要…

    python 2023年6月3日
    00
  • python 实现超级玛丽游戏

    Python 实现超级玛丽游戏攻略 简介 本篇攻略将介绍如何使用 Python 语言实现经典游戏“超级玛丽”(Super Mario),并将使用 Pygame 库来完成这个任务。Pygame 是一款专为游戏开发而设计的 Python 库,可用于创建基于图形界面的游戏。 安装 Pygame 在开始创建超级玛丽游戏之前,您需要安装 Pygame 库。在安装 Py…

    python 2023年6月3日
    00
  • Python对CSV、Excel、txt、dat文件的处理

    CSV、Excel、txt、dat文件是常见的数据存储格式,Python具备较强的处理这些文件的能力。下面,我将为大家分享Python处理这些格式文件的完整攻略。 CSV文件的处理 CSV文件为逗号分隔值文件,其内容以逗号分隔的文本数据形式存储。Python通过csv模块实现对CSV文件的处理。 CSV文件的读取 假设我们有一个名为example.csv的文…

    python 2023年6月3日
    00
  • 热门问题python爬虫的效率如何提高

    热门问题:Python爬虫的效率如何提高? Python爬虫可以说是数据采集的“大杀器”,它可以获取互联网上的全部或部分数据,并将其存储下来,为我们提供数据分析、数据可视化、机器学习和人工智能等领域提供支持。然而,Python爬虫的效率却一直是人们关注的热门话题。本文将从以下三个方面详细讲解如何提高Python爬虫的效率。 一、请求速度优化 爬虫的效率往往取…

    python 2023年5月31日
    00
  • python的构建工具setup.py的方法使用示例

    下面是详细讲解“Python的构建工具setup.py的方法使用示例”的完整攻略。 什么是setup.py 在Python中,我们通常使用setup.py来构建、打包和发布Python模块和软件。setup.py是Python语言的一种脚本文件,它包含了Python模块和软件的元数据(如模块名、版本号、作者、依赖库等),并指导构建、打包和安装操作。 setu…

    python 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部