我的编程空间,编程开发者的网络收藏夹
学习永远不晚

beautiful soup爬虫初识

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

beautiful soup爬虫初识

Beautiful Soup的安装,简称bs4

pip3 install bs4


bs4解析器选择

解析器使用方法优势
劣势
Python标准库BeautifulSoup(markup, "html.parser")

Python的内置标准库

执行速度适中

文档容错能力强

Python 2.7.3 or 3.2.2)前 的版本中文档容错能力差
lxml HTML 解析器BeautifulSoup(markup, "lxml")

速度快

文档容错能力强

需要安装C语言库
lxml XML 解析器

BeautifulSoup(markup, ["lxml-xml"])


BeautifulSoup(markup, "xml")

速度快

唯一支持XML的解析器

需要安装C语言库
html5libBeautifulSoup(markup, "html5lib")

最好的容错性

以浏览器的方式解析文档

生成HTML5格式的文档

速度慢

不依赖外部扩展

官方推荐使用lxml作为解析器,因为效率更高. 在Python2.7.3之前的版本和Python3中3.2.2之前的版本,必须安装lxml或html5lib, 因为那些Python版本的标准库中内置的HTML解析方法不够稳定


lxml解析器安装

pip3 install lxml


使用bs4过滤器

自建示例文件scenery.html文件的内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>武汉旅游景点</title>
    <meta name="description" content="武汉旅游景点 精简版" />
    <meta name="author" content="hstking">
</head>
<body>
    <div id="content">
        <div class="title">
            <h3>武汉景点</h3>
        </div>
        <ul class="table">
            <li>景点<a>门票价格</a></li>
        </ul>
        <ul class="content">
            <li nu="1">东湖 <a class="price">60</a></li>
            <li nu="2">磨山 <a class="price">60</a></li>
            <li nu="3">欢乐谷 <a class="price">108</a></li>
            <li nu="4">武昌极地海洋世界 <a class="price">150</a></li>
            <li nu="5">玛雅水上乐园 <a class="price">150</a></li>
        </ul>
    </div>

</body>
</html>


使用lxml解析器,打印scenery.html内容

from bs4 import BeautifulSoup

# 使用lxml解析器
soup = BeautifulSoup(open('scenery.html', encoding='utf8'), 'lxml')
# prettify按标准的缩进格式的结构输出
print(soup.prettify())

执行结果:  按照标准的缩进格式的结构输出

blob.png


bs4解析器lxml练习:

#!/usr/bin/env python
# coding: utf-8
from bs4 import BeautifulSoup

# 使用lxml解析器
soup = BeautifulSoup(open('scenery.html', encoding='utf8'), 'lxml')
# prettify按标准的缩进格式的结构输出
print(soup.prettify())

# 获取第一次出现的标签名为ul的标签内容
print(soup.ul)
print('\n')

# 使用bs4过滤器soup.find()的方法获取第一次出现的标签内容
print(soup.find('ul'))
print('\n')

# 使用soup.find_all方法获取所有符合条件的标签列表,然后从列表中读取就行了
print(soup.find_all('ul'))  # 获取所有ul中所有内容
print('\n')

print(soup.find_all('ul')[0])  # 获取第一个ul中的所有内容
print('\n')

print(soup.find_all('ul')[1])  # 获取第二个ul中的所有内容
print('\n')

# 可以用soup.find(TagName, attrs={attrName:attrValue})的方法获取Tag的位置
# 获取li标签nu='3'的内容,适用标签名相同,属性不同的标签
print(soup.find('li', attrs={'nu': '3'}))
print('\n')

# 标签名相同,属性相同,连属性值都相同的标签
# 可以用soup.find_all(TagName,attr={'attName':'attValue'})将符合条件的内容全部放到列表里面
# 找a标签,class='price'的第一个内容
print(soup.find_all('a', attrs={'class': 'price'})[0])
print('\n')

# 获取li标签,nu='2'的内容
Tags = soup.find('li', attrs={'nu': '2'})
print(Tags)
print(Tags.a)  # 获取nu='2'里面的a标签内容
print(Tags.find('a'))  # 获取nu='2'里面的a标签内容
print('\n')

# 获取li标签,nu='4'的内容
Tag = soup.find('li', attrs={'nu': '4'})
print(Tag)

# 获取li标签,nu='4'中nu的值
print(Tag.get('nu'))

# 获取li标签,nu='4'中的文本内容
ss = Tag.get_text()
print(ss)

# 以空格切割上面文本内容拿到第一个值
print(Tag.get_text().split(' ')[0])

# 获取li标签下a标签的文本内容
print(Tag.a.get_text())


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

beautiful soup爬虫初识

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

beautiful soup爬虫初识

Beautiful Soup的安装,简称bs4pip3 install bs4bs4解析器选择解析器使用方法优势劣势Python标准库BeautifulSoup(markup, "html.parser")Python的内置标准库执行速度适
2023-01-30

Python爬虫进阶之Beautiful Soup库详解

一、Beautiful Soup库简介 BeautifulSoup4 是一个 HTML/XML 的解析器,主要的功能是解析和提取 HTML/XML 的数据。和 lxml 库一样。 lxml 只会局部遍历,而 BeautifulSoup4 是
2022-06-02

Python的爬虫包Beautiful Soup中用正则表达式来搜索

Beautiful Soup使用时,一般可以通过指定对应的name和attrs去搜索,特定的名字和属性,以找到所需要的部分的html代码。 但是,有时候,会遇到,对于要处理的内容中,其name或attr的值,有多种可能,尤其是符合某一规律,
2022-06-04

以视频爬取实例讲解Python爬虫神器Beautiful Soup用法

1.安装BeautifulSoup4 easy_install安装方式,easy_install需要提前安装easy_install beautifulsoup4pip安装方式,pip也需要提前安装.此外PyPi中还有一个名字是 Beaut
2022-06-04

Python使用Beautiful Soup包编写爬虫时的一些关键点

1.善于利用soup节点的parent属性 比如对于已经得到了如下html代码: 2022-06-04

一起学爬虫——使用Beautiful S

要想学好爬虫,必须把基础打扎实,之前发布了两篇文章,分别是使用XPATH和requests爬取网页,今天的文章是学习Beautiful Soup并通过一个例子来实现如何使用Beautiful Soup爬取网页。什么是Beautiful So
2023-01-30

Python爬虫系列 - 初探:爬取新闻

Get发送内容格式Get方式主要需要发送headers、url、cookies、params等部分的内容。t = requests.get(url, headers = header, params = content, cookies =
2023-01-30

Python爬虫基础之初次使用scrapy爬虫实例

项目需求 在专门供爬虫初学者训练爬虫技术的网站(http://quotes.toscrape.com)上爬取名言警句。 创建项目 在开始爬取之前,必须创建一个新的Scrapy项目。进入您打算存储代码的目录中,运行下列命令:(base) λ
2022-06-02

python3爬虫初探(六)之EXCEL

在爬取数据之后,数据的保存就成为一个新的问题,一般不太大的的数据存储到EXCEL就可以了。这里介绍一个python的第三方库——xlsxwriter.这个库的安装就不介绍了,pip就可以,不用FQ。这里仅介绍一些简单常用的命令。 首先,说明
2023-01-31

python小白的初步爬虫

前序: 最近工作不是很忙,领导突然找我谈话,说是谈话,其实就是分配活呗。果不其然,很快进入正题, 给了我一个网址链接,然后说需要商品的信息。。。巴拉巴拉。好吧,去做吧。我当时的内心是崩溃的,python爬虫压根没碰过,这下完蛋了,理了理思绪
2023-01-30

Python爬虫突破反爬虫机制知识点有哪些

这篇文章主要介绍“Python爬虫突破反爬虫机制知识点有哪些”,在日常操作中,相信很多人在Python爬虫突破反爬虫机制知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python爬虫突破反爬虫机制
2023-06-25

【Python | 边学边敲边记】第四次:初识爬虫框架Scrapy

一、前言本系列上一篇:【Python | 边学边敲边记】第三次:URL去重策略今天给大家分享的是,Python里的爬虫框架Scrapy学习,包含python虚拟环境的搭建、虚拟环境的使用、Scrapy安装方法详解、Scrapy基本使用、Sc
2023-06-02

Python爬虫知识点梳理

做数据分析和任何一门技术一样,都应该带着目标去学习,目标就像一座灯塔,指引你前进,很多人学着学着就学放弃了,很大部分原因是没有明确目标,所以,一定要明确学习目的,在你准备学爬虫前,先问问自己为什么要学习爬虫。有些人是为了一份工作,有些人是为
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录