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顺序执行多个py文件的方法

    当我们需要执行多个Python(.py)文件时,可以通过如下几种方法来顺序执行这些文件: 方法一:使用Python shell 在命令行窗口输入以下命令:python file1.py && python file2.py(&&是Linux的命令操作符,表示“先执行前面的命令,如果执行成功则继续执行后面的命令”) Python…

    python 2023年6月2日
    00
  • python基础教程之字典操作详解

    Python基础教程之字典操作详解 1. 什么是字典 在 Python 中,字典是一种可变容器模型,也可称作为键值对(key-value)存储,顾名思义,字典是由键和值组成的。 2. 字典的创建 字典的创建可以通过大括号 {} 或者 dict() 函数来实现,如下: # 通过 {} 创建字典 dict1 = {‘name’: ‘Jack’, ‘age’: 1…

    python 2023年5月13日
    00
  • python使用BeautifulSoup分页网页中超链接的方法

    Python使用BeautifulSoup分页网页中超链接的方法 在本教程中,我们将介绍如何使用Python和BeautifulSoup库来分析分页网页中的超链接。我们将提供两个示例,演示如何获取分页网页中的所有超链接和特定页面的超链接。 安装BeautifulSoup库 在使用BeautifulSoup库之前,我们需要先安装它。可以使用pip命令来安装Be…

    python 2023年5月15日
    00
  • python3:excel操作之读取数据并返回字典 + 写入的案例

    下面是关于“python3:excel操作之读取数据并返回字典+写入的案例”的完整攻略。 简介 本次教程将介绍如何使用Python3操作Excel文件。我们将会学习如何读取Excel文件中的数据,并将其转化为python字典格式;以及如何将Python数据写入到Excel文件中。我们将使用Python标准库中的openpyxl工具。 准备工作 在开始之前,我…

    python 2023年5月13日
    00
  • 详解Python中DOM方法的动态性

    给出“详解Python中DOM方法的动态性”的攻略如下: 1. 什么是DOM? DOM(Document Object Model)是一种文档对象模型,它是一种以树形结构作为基础的文档表示方法,可以用JavaScript或Python等编程语言来操作HTML或XML文档的内容和结构。 2. 动态性的含义 在Python中,DOM方法是动态的,这意味着当我们对…

    python 2023年6月3日
    00
  • Python-接口开发入门解析

    在Python中,可以使用Flask、Django等框架开发Web接口。以下是Python接口开发入门解析的详细攻略: 使用Flask框架开发接口 Flask是一个轻量级的Web框架,可以用于开发RESTful接口。以下是使用Flask框架开发接口的示例: from flask import Flask, jsonify app = Flask(__name…

    python 2023年5月14日
    00
  • Python iter()函数用法实例分析

    Python iter()函数用法实例分析 一、iter()函数概述 iter()函数是Python内置函数之一,用于返回一个迭代器对象,其作用是使一个对象可以像序列一样被迭代。 下面是iter()函数的基本语法: iter(obj, sentinel) 其中obj代表需要进行迭代操作的对象,sentinel参数可选,通常用于指定迭代结束的条件。 二、ite…

    python 2023年5月20日
    00
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理

    浅析python实现布隆过滤器及Redis中的缓存穿透原理 什么是布隆过滤器 布隆过滤器是一种用于快速判断一个元素是否存在于一个集合中的数据结构。它使用一定数量的位数组和几个Hash函数来实现。 Python实现布隆过滤器 Python中实现布隆过滤器可以使用Bitarray库,该库提供了高效的位数组操作。 实现步骤如下: 1. 安装依赖库bitarray …

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