Bs4解析

本文介绍了BeautifulSoup4(bs4)在数据分析中的基础概念,包括其作为爬虫库的作用、数据解析原理、安装方法以及通过实例演示如何使用bs4进行HTML标签定位和数据提取。内容涵盖了从基础介绍到实际操作的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Bs4解析

bs4数据分析
一、基础介绍
bs4 全名 BeautifulSoup,是编写 python 爬虫常用库之一,BeautifulSoup4也是一个html/xml的解析器,主要用来解析 html 标签。

-数据解析的原理:

1.标签定位
2.提取标签、标签属性中存储的数据值

  • bs4数据解析的原理:

1.实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中

2.通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取

我们一般在使用bs4库进行数据分析时,最主要使用的都是beautifulsoup。所以我们在使用时一般都是引入这个库

from bs4 import BeautifulSoup

bs4提供用于数据解析的方法和属性有:



soup.find().text 获取标签内文本内容

soup.get_text() 获取标签内的文本内容

soup.get() 获取标签属性的值

soup.tagName:返回的是文档中第一次出现的tagName对应的标签

soup.find():

-soup.find(‘div’,class_/id/attr=‘song’)

soup.find_all(‘tagName’):返回符合要求的所有标签(列表)

find(‘tagName’):等同于soup.div

有了这些基本介绍下,我们就能够进行基本的bs4数据解析了

接下来将通过几个实例进行巩固。

二、安装bs4

pip install beautifulsoup4

三、实例

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2023/11/29 9:18
# @Author : 你的秘密
# @File : @demo2pic.py
# @email :
import time

import fake_useragent
import requests
from bs4 import BeautifulSoup
head = {
    'User-Agent': fake_useragent.UserAgent().random	 	# 生成随机请求头
}
url = 'http://www.umeituku.com/bizhitupian/weimeibizhi/'
resp = requests.get(url, headers=head)
resp.encoding = 'utf-8'
# print(resp.text)
main_page = BeautifulSoup(resp.text, 'html.parser')		# html.parser表示resp.text类型为html
alist = main_page.find('div', class_='TypeList').find_all('a')
# print(alist)
for a in alist:
    try:		# 用try因为有的网页不一样对应的想获取内容  相当于错误
        href = a.get('href')    # 通过get拿属性值
        child_page_resp = requests.get(href)
        child_page_resp.encoding = 'utf-8'
        child_page_text = child_page_resp.text
        child_page = BeautifulSoup(child_page_text, 'html.parser')
        p = child_page.find('p', align='center')
        img = p.find('img')
        src = img.get('src')
    except Exception as e:
        src = ''
    # print(src)
    # 下载图片
    if src != '':
        img_resp = requests.get(src)
        img_name = src.split('/')[-1]
        with open("img/"+img_name, mode="wb") as f:         # 该语句不能自己创键一个文件夹
            f.write(img_resp.content)
        time.sleep(1)

# 将图片或视频的目录标记排除 以防止pycharm自动索引变卡

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值