热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

末尾_python解析网站BeautifulSoup

篇首语:本文由编程笔记#小编为大家整理,主要介绍了python解析网站BeautifulSoup相关的知识,希望对你有一定的参考价值。首先了解一下正则表达式解析

篇首语:本文由编程笔记#小编为大家整理,主要介绍了python解析网站BeautifulSoup相关的知识,希望对你有一定的参考价值。



首先了解一下正则表达式解析网站

正则表达式是解析网站时必须要了解的,我们在提取网页中的数据时,可以先将源代码变成字符串,然后用正则表达式匹配想要的数据


模式描述
.匹配任意字符,除了换行符
*匹配前一个字符0次或多次
+匹配前一个字符1次或多次
?匹配前一个字符0次或1次
^匹配字符串开头
$匹配字符串末尾
()匹配括号内的表达式,也表示一个组
\\s匹配空白字符
\\S匹配任何非空白字符
\\d匹配数字,等价于[0-9]
\\D匹配任何非数字,等价于[^0-9]
\\w匹配字母数字,等价于[A-Za-z0-9_]
\\W匹配非字母数字,等价于[^A-Za-z0-9_]
[]用来表示一组字符

re.match()方法

re.match的意思是从字符串起始位置匹配一个模式,如果从起始位置匹配不了,match()就返回none

re.match的语法为re.match(pattern,string,flags=0),其中pattern是正则表达式,包含一些特殊的字符,string为要匹配的字符串,flags用来控制正则表达式的匹配方式,如是否区分大小写、多行匹配等


re.search方法

re.search扫描整个字符串并返回第一个成功的匹配,其余与re.match一样


re.findall方法

由于re.match和re.search方法中,我们只能找到一个匹配所写的模式,而findall可以找到所有的匹配
findall与match、search不同的是,findall能够找到所有匹配的结果,并且以列表的形式返回


BeautifulSoup解析网站

BeautifulSoup可以从HTML或XML文件中提取数据


BeautifulSoup的安装

在cmd中输入:pip install bs4


BeautifulSoup的其他功能

BeautifulSoup对象是一个复杂的树形结构,它的每个节点都是python对象,获取网页的内容就是一个提取对象内容的过程


  1. 遍历文档树
  2. 搜索文档树
  3. CSS选择器

1.遍历文档树

要获取

标签,只需要输入:

soup.header.h1

对于某个标签的所有子节点,我们可以用contents把它的子节点以列表的方式输出:

soup.header.div.contents

我们也可以使用children方法获得所有子标签:

for child in soup.header.div.children:
print (child)

上述方法只能获取该节点下一级的节点,如果要获得所有子子孙孙的节点,就要用.descendants方法。其代码如下:

for child in soup.header.div.descendants:
print(child)

除了获取子节点外,还可以使用.parent方法获得父节点的内容:

a_tag = soup.header.div.a
a_tag.parent

2.搜索文档树

在搜索文档树时,常用的是find()和find_all()
find()和find_all()方法可以和re正则结合起来使用

for tag in soup.find_all(re.compile("^h")):
print(tag.name)

输出:

html
header
h3

3.CSS选择器

CSS选择器方法既可以作为遍历文档树的方法数据提取,也可以作为搜索文档树的方法提取数据


推荐阅读
  • 实现一个通讯录系统,可添加、删除、修改、查找、显示、清空、排序通讯录信息
    本文介绍了如何实现一个通讯录系统,该系统可以实现添加、删除、修改、查找、显示、清空、排序通讯录信息的功能。通过定义结构体LINK和PEOPLE来存储通讯录信息,使用相关函数来实现各项功能。详细介绍了每个功能的实现方法。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 本文介绍了win7系统休眠功能无法启动和关闭的解决方法,包括在控制面板中启用休眠功能、设置系统休眠的时间、通过命令行定时休眠、手动进入休眠状态等方法。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • 本文详细介绍了Python中正则表达式和re模块的使用方法。首先解释了转义符的作用,以及如何在字符串中包含特殊字符。然后介绍了re模块的功能和常用方法。通过学习本文,读者可以掌握正则表达式的基本概念和使用技巧,进一步提高Python编程能力。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
author-avatar
建霖怡旭家其
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有