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:time模块用法

    详解Python:time模块用法 简介 Python中的time模块是处理时间的模块。它提供了获取时间、时间格式化、睡眠等功能。在本文中,我们将详细讲解time模块的用法,包括获取当前时间、获取时间戳、时间格式化、时间周期、睡眠等内容。 函数和属性 以下是time模块提供的常用函数和属性: time.altzone:返回格林威治西部夏令时(DST)的偏移秒…

    python 2023年6月2日
    00
  • Python如何发送与接收大型数组

    要发送和接收大型数组,可以使用Python内置的socket库来进行网络通信。下面是操作步骤的完整攻略: 步骤一:建立连接并发送数组 首先,需要在发送方(客户端)上创建一个socket对象。 import socket # 创建一个socket对象 client_socket = socket.socket(socket.AF_INET, socket.SO…

    python 2023年6月5日
    00
  • Python爬虫headers处理及网络超时问题解决方案

    Python爬虫headers处理及网络超时问题解决方案 简介 在使用Python进行爬虫开发时,会遇到对于爬虫脚本头部信息的设置和网络超时问题的解决。本文将详细讲述Python爬虫中headers的设置和超时问题的处理方法。 requests库中的headers设置 requests库是一个常用的Python爬虫库,其中的headers参数可以设置HTTP…

    python 2023年5月13日
    00
  • Python编程之Re模块下的函数介绍

    下面分享一下“Python编程之Re模块下的函数介绍”的攻略。 1. 介绍 正则表达式是一种强大的字符串匹配工具,能够方便快捷地对字符串进行匹配、查找、替换等操作。Python中提供了re(正则表达式)模块,用于处理正则表达式。 re模块下提供了许多函数,包括match、search、findall、sub等等。下面分别介绍各个函数的使用。 2. re模块函…

    python 2023年5月13日
    00
  • Python正则表达式之基础篇

    以下是“Python正则表达式之基础篇”的完整攻略: 一、问题描述 正则表达式是一种用于匹配字符串的工具,可以用于搜索、替换、验证等操作。Python中内置了re模块,可以使用正则表达式进行字符串操作。本文将详细讲解Python正则表达式的基础知识,包括正则表达式的语法、常用函数和示例。 二、解决方案 2.1 正则表达式的语法 正则表达式是由普通字符和特殊字…

    python 2023年5月14日
    00
  • python3爬虫获取html内容及各属性值的方法

    Python3爬虫获取HTML内容及各属性值的方法 1. 引言 在Python爬虫开发中,获取HTML内容及各属性值是必不可少的操作。本文将介绍Python爬虫获取HTML内容及各属性值的方法。 2. 爬虫获取HTML内容 爬虫获取HTML内容可以使用urllib和requests等第三方库实现。下面以requests为例,介绍获取HTML内容的方法。 首先…

    python 2023年5月14日
    00
  • python中的3种定义类方法

    当我们定义一个类的时候,有很多种方式来定义类方法。在Python中,最常见的有三种: 实例方法 类方法 静态方法 1. 实例方法 实例方法是最常见的定义方式,它通常用于操作一个类的实例对象。实例方法的第一个参数必须是self,它表示对当前实例对象的引用。在实例方法内部,可以轻松地操作实例变量。 class MyClass: def __init__(self…

    python 2023年6月5日
    00
  • Python函数设置默认参数

    在Python中,可以为函数参数指定默认值,这些参数被称为默认参数。如果调用函数时没有传递这些参数,则使用默认值。 默认参数可以在定义函数时指定,例如: def greet(name, greeting="Hello"): print(greeting, name) 在上面的示例中,greeting参数具有默认值"Hello&q…

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