python爬虫beautiful soup的使用方式

yizhihongxing

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 ord函数()案例详解

    Python ord() 函数案例详解 什么是 Python ord() 函数? Python ord() 函数是 Python 标准库中内置的一个函数,该函数用于返回指定 Unicode 字符的十进制整数表示。也就是说,该函数接收一个单个的 Unicode 字符作为参数,并返回这个字符对应的 Unicode 码位的整数值。 ord() 函数的语法 ord(…

    python 2023年5月14日
    00
  • 基于PyQt5制作一个windows通知管理器

    下面是制作一个Windows通知管理器的完整攻略,包含以下步骤: 步骤一:安装并学习PyQt5 PyQt5是基于Python的GUI框架,用于创建跨平台的应用程序。首先需要安装PyQt5,可以使用pip工具来安装: pip install PyQt5 然后需要学习PyQt5的基础知识,包括信号与槽、控件、布局等。 步骤二:创建主界面 首先需要创建一个主界面,…

    python 2023年6月3日
    00
  • 如何从python中的timedelta对象获取分钟和秒(mm:ss)

    【问题标题】:How to get minutes and seconds(mm:ss) from a timedelta object in python如何从python中的timedelta对象获取分钟和秒(mm:ss) 【发布时间】:2023-04-05 17:00:01 【问题描述】: 我正在编写一个代码,其中我为每个话语添加了持续时间(作为每个话…

    Python开发 2023年4月5日
    00
  • Python Logging – 如何检查 Logger 是否为空

    【问题标题】:Python Logging – How To Check If Logger Is EmptyPython Logging – 如何检查 Logger 是否为空 【发布时间】:2023-04-03 20:54:02 【问题描述】: 我刚刚在我的应用程序中实现了日志记录,我想知道是否有一种方法可以检查记录器是否为空。 我的想法是在我的脚本中设置…

    Python开发 2023年4月8日
    00
  • 基于python实现把json数据转换成Excel表格

    下面来详细讲解“基于python实现把json数据转换成Excel表格”的完整攻略: 需求分析 我们需要将json数据转换成Excel表格,因此需要用到Python中的json和pandas两个模块。 JSON 使用json模块可以很容易地将json数据转换成Python对象。 Pandas 使用pandas模块可以将Python对象转换成Excel表格。需…

    python 2023年5月20日
    00
  • Python实现数据可视化大屏布局的示例详解

    Python实现数据可视化大屏布局的示例详解 数据可视化大屏布局是数据分析和展示的重要环节,可以帮助用户更好地理解数据。本攻略将介绍Python实现数据可视化大屏布局的完整攻略,包括环境搭建、数据处理、数据可视化和示例。 步骤1:环境搭建 在Python中,我们可以使用Dash库实现数据可视化大屏布局。以下是安装Dash库的示例代码: pip install…

    python 2023年5月15日
    00
  • 彻底解决pip下载pytorch慢的问题方法

    下面是彻底解决pip下载pytorch慢的问题的完整攻略: 1. 确认网络环境 首先,在下载过程中需要确认网络环境是否正常。如果网络环境不稳定或者网络速度较慢,可能会导致下载速度缓慢。可以通过使用其他工具下载同等大小的文件来验证网络环境是否正常,比如使用迅雷等下载工具进行下载测试。 如果网络环境正常,那么可以考虑使用以下方法来解决pip下载pytorch慢的…

    python 2023年5月14日
    00
  • python实现QQ定时发送新年祝福信息

    1. 简介 本攻略旨在介绍如何使用Python实现QQ定时发送新年祝福信息的功能。QQ是一款广泛使用的社交软件,它的消息接口并不对开发者开放,但我们可以使用第三方库QIM的接口实现自动发送消息。Python是一种流行的编程语言,具有丰富的类库和工具,可以很好地完成这个任务。 2. 实现步骤 2.1 安装QIM库 在Python3下可以通过PIP进行安装 pi…

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