BeautifulSoup库之find_all函数

  BeautifulSoup将复杂的HTML文档转换成一个复杂的树形结构.每个节点都是Python对象.所有对象可以归纳为四种:Tag , NavigableString , BeautifulSoup , Comment .

    1.Tag对象最重要的属性:Name:标签的名字;attributes:属性(用class指代)

    2.BeautifulSoup 对象表示的是一个文档的全部内容.大部分时候,可以把它当作 Tag 对象,它支持 遍历文档树 和 搜索文档树 中描述的大部分的方法.因为 BeautifulSoup 对象并不是真正的HTML或XML的tag,所以它没有name和attribute属性.但有时查看它的 .name 属性是很方便的,所以 BeautifulSoup 对象包含了一个值为 “[document]” 的特殊属性 .name

    3.字符串常被包含在tag内.Beautiful Soup用 NavigableString 类来包装tag中的字符串,如果想在Beautiful Soup之外使用 NavigableString 对象,需要调用 unicode() 方法,将该对象转换成普通的Unicode字符串,否则就算Beautiful Soup已方法已经执行结束,该对象的输出也会带有对象的引用地址.这样会浪费内存.

    4.Comment 对象是一个特殊类型的 NavigableString 对象,用来完成文本注释.

  既然BeautifulSoup将html文档转换为复杂的树形结构,然后来介绍如何遍历html文档树:

    子节点:.contents将子节点以列表的方式输出(含内容);.children返回子节点的列表生成器,可以遍历输出;contents和children只查找第一个子节点,而.descendants可对所有子节点进行递归循环;

    父节点:.parent 属性来获取某个标签或字符串的父节点;.parents 属性可以递归得到元素的所有父辈节点

    兄弟节点:.next_sibling获取下一个兄弟节点; .previous_sibling获取前一个兄弟节点,同样加s返回所有前或者后兄弟的列表生成器,可遍历输出.

  接下来介绍find_all()函数,首先要明确find_dall总返回一个列表,如果没有找到则返回空:BeautifulSoup提供了强大的搜索函数find 和findall,这里的两个方法(findAll和 find)仅对Tag对象以及,顶层剖析对象有效。其标准引用形式为:findAll(name, attrs, recursive, text, limit, **kwargs)

  1.通过标签名查找:

1 for link in soup.find_all(‘a‘): #soup.find_all返回的为列表
2     print(link.get(‘href‘))

  2.通过标签属性值查找:

  

1 pid=soup.findall(‘p‘,id=‘hehe‘)  #通过tag的id属性搜索标签 #print(soup.find_all(attrs={‘class‘:‘footer‘}))

  3.通过re正则表达式搜索tag标签内容:

pid=soup.findAll(id=re.compile("he$")) #正则表达式的使用

    

---恢复内容结束---

原文地址:https://www.cnblogs.com/lh2018/p/10011584.html

时间: 2024-10-03 00:00:21

BeautifulSoup库之find_all函数的相关文章

python中BeautifulSoup库中find函数

http://www.crummy.com/software/BeautifulSoup/bs3/documentation.zh.html#contents 简单的用法: find(name, attrs, recursive, text, **kwargs) 好了,我们现在看看其他的搜索方法.他们都是有和 findAll 几乎一样的参数. find方法是最接近findAll的函数, 只是它并不会获得所有的匹配对象,它仅仅返回找到第一个可匹配对象. 也就是说,它相当于limit参数为1的结果集

[爬虫] BeautifulSoup库

Beautiful Soup库基础知识 Beautiful Soup库是解析xml和html的功能库.html.xml大都是一对一对的标签构成,所以Beautiful Soup库是解析.遍历.维护"标签树"的功能库,只要提供的是标签类型Beautiful Soup库都可以进行很好的解析. Beauti Soup库的导入 from bs4 import BeautifulSoup import bs4 html文档 == 标签树 == BeautifulSoup类   可以认为三者是等价

Python爬虫(三):BeautifulSoup库

BeautifulSoup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库,它能够将 HTML 或 XML 转化为可定位的树形结构,并提供了导航.查找.修改功能,它会自动将输入文档转换为 Unicode 编码,输出文档转换为 UTF-8 编码. BeautifulSoup 支持 Python 标准库中的 HTML 解析器和一些第三方的解析器,默认使用 Python 标准库中的 HTML 解析器,默认解析器效率相对比较低,如果需要解析的数据量比较大或比较频繁,推荐使用更强.

BeautifulSoup 库

https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/#id4 中文版BeautifulSoup库 作用 提取HTML和XML文档中的数据 修改.导航.查找文档 创建html_doc >>> html_doc = """... <html><head><title>The Dormouse's story</title></head>  .

Python:使用 BeautifulSoup 库抓取百度天气

最近研究了Python的BeautifulSoup库,用起来还挺好玩的一.安装:使用pip命令在线安装:在cmd窗口中输入:pip install beautilfulsoup4 二.代码思路:1.使用request获取相关网页的返回值,即HTML对象: 方法一2.通过BeautifulSoup库对HTML页面元素进行解析,需要先分析要抓取的内容在哪里,再通过代码获取,存储在列表中:方法二3.读取列表中内容,写入到csv文件中.方法三 ```pythonfrom bs4 import Beaut

四 . 爬虫 BeautifulSoup库参数和使用

一  .BeautifulSoup库使用和参数 1 .Beautiful简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.python式的函数用来处理导航.搜索.修改分析树等功能.它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序.Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码.你

BCB 查看动态库中有什么函数

切换至 tdump.exe 所在目录: C:\Documents and Settings\Administrator>cd D:\Program Files\CodeGear\RAD Studio\6.0 \bin D:\Program Files\CodeGear\RAD Studio\6.0\bin>tdump.exe D:\Program\CKD\05191800\F nthex32.dll > d:\Fnthex32.txt 输出结(红色字体为函数名): Exports fro

16位汇编 多文件 intel汇编 编译器masm5.0 调用子程序库即静态库的自定义函数 WINDOWS

;以下是16位汇编 创建静态库,并调用静态库中的函数 ;多文件汇编格式 ;编译方法(此处用的是masm 5.0,如果是其他的编译器,有可能不能编译) ;第一种,编译方法 ;1.masm main.asm  生成.obj文件 ;2.masm lib.asm  生成.obj文件 ;3.link main.obj lib.obj 生成.exe文件 ;第二种,编译方法 ;1.masm main.asm  生成.obj文件 ;2.masm 16lib.asm  生成.obj文件 ;3.lib 16lib.

C库文件操作函数

标准库中的函数,类型以及宏在下面的标准头文件中定义: <assert.h> <float.h> <math.c> <stdarg.h> <stdlib.h> <ctype.h> <limits.h> <setjmp.h> <stddef.h> <string.h> <errno.h> <locale> <signal.h> <stdio.h>