[Python]BeautifulSoup标签的遍历
1.下行遍历
标签树的下行遍历
.content 子节点列表,将tag所有儿子节点存入列表
.children 子节点的迭代类型,与.contents类似用于循环遍历儿子节点
.descendants 子孙节点的迭代类型,包含所有子孙节点,用于循环遍历
测试代码:
import requests
from bs4 import BeautifulSoup
r=requests.get("http://python123.io/ws/demo.html")
demo=r.text
soup=BeautifulSoup(demo,"html.parser")
print(soup.head) #head标签内容
print(soup.head.contents) #head标签子节点的内容
print(soup.body.contents) #body标签子节点的内容
print(len(soup.body.contents)) #body标签的子节点层数
print(soup.body.contents[1]) #
2.上行遍历
.parent 节点的父亲标签
.parents 循环遍历先辈节点
测试代码:
import requests
from bs4 import BeautifulSoup
r=requests.get("http://python123.io/ws/demo.html")
demo=r.text
soup=BeautifulSoup(demo,"html.parser")
#print(soup.title.parent)
#print(soup.html.parent)
for parent in soup.a.parents:
if parent is None:
print(parent)
else:
print(parent.name)
3.平行遍历
标签树的平行遍历
.next_sibling 返回按照HTML文本顺序的下一个平行节点标签
.previous_sibling 返回按照HTML文本顺序的上一个平行节点标签
.nex_siblings 迭代类型,返回按照HTML文本顺序的后续所有平行节点标签
.previous_siblings 迭代类型,返回按照HTML文本顺序的前续所有平行节点标签
测试代码:
import requests
from bs4 import BeautifulSoup
r=requests.get("http://python123.io/ws/demo.html")
demo=r.text
soup=BeautifulSoup(demo,"html.parser")
print(soup.a.next_sibling) #a的平行标签
print(soup.a.next_sibling.next_sibling) #a标签的下一个标签的平行标签
print(soup.a.previous_sibling) #a标签的上一个标签
print(soup.a.previous_sibling.previous_sibling) #a标签的上一个标签的平行标签
[Python]BeautifulSoup标签的遍历的更多相关文章
- python BeautifulSoup库的基本使用
Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree). 它提供简单又常用的导航(navigating),搜索以 ...
- Struts 2的iterator标签来遍历一个含有双层List的嵌套
今天碰到一个很有意思的问题,就是需要用Struts 2的iterator标签来遍历一个含有双层List的嵌套. 首先我们从最基础的说起,用iterator标签遍历一个List. 如果Action中有一 ...
- 【转】Python BeautifulSoup 中文乱码解决方法
这篇文章主要介绍了Python BeautifulSoup中文乱码问题的2种解决方法,需要的朋友可以参考下 解决方法一: 使用python的BeautifulSoup来抓取网页然后输出网页标题,但是输 ...
- Python os.walk文件遍历用法【转】
python中os.walk是一个简单易用的文件.目录遍历器,可以帮助我们高效的处理文件.目录方面的事情. 1.载入 要使用os.walk,首先要载入该函数 可以使用以下两种方法 import os ...
- python实现dict版图遍历
python实现dict版图遍历的示例. 代码: #_*_coding:utf_8_import sysimport osclass Graph(): def __init__(self, V, E) ...
- Python通过lxml库遍历xml通过xpath查询(标签,属性名称,属性值,标签对属性)
xml实例: 版本一: <?xml version="1.0" encoding="UTF-8"?><country name="c ...
- Python beautifulsoup 选择器 select 选择<meta/>等不需要成对结尾标签未写‘/’
一些不需要成对的标签<meta/> <img/>d等使用bs4的css选择器时出现的情况: 选择某一标签,输出内容超出范围过多 from bs4 import Beautifu ...
- python 之 BeautifulSoup标签查找与信息提取
一. 查找a标签 (1)查找所有a标签 >>> for x in soup.find_all('a'): print(x) <a class="sister" ...
- 【python小随笔】python 解析xml数据的新手大坑>>抓取多重标签,遍历各标签的数据
xml文档: <GetMatchingProductResult ASIN="B071LF9R6G" status="Success">...< ...
随机推荐
- iTerm 2 与 oh-my-zsh配合,自定义你的终端。
参考博客:https://www.cnblogs.com/xishuai/p/mac-iterm2.html 参考博客:https://www.cnblogs.com/sasuke6/p/497607 ...
- css权重导致的样式不生效问题
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Cesium案例解析(六)——3DTilesInspector监视器
目录 1. 概述 2. 案例 1. 概述 3D Tiles作为传输和渲染大规模3D地理空间数据的格式,应对的都是大规模数据的场景,Cesium提供了一个监视3D Tiles数据的监视器,可以通过这个监 ...
- Android中通过Fragment进行简单的页面切换
首先是activity中的布局 <?xml version="1.0" encoding="utf-8"?> <androidx.constr ...
- Elementui_day01,基础
Elementui_day01 1. 安装 npm i element-ui -S 2. 引入 import ElementUI from 'element-ui'; import 'element- ...
- 【WCF Restful】Post传参示范
1.传多个参数 接口定义:(ResponseFormat与RequestFormat分别将相应参数序列化.请求参数反序列化) [OperationContract] [WebInvoke(UriTem ...
- spring cloud微服务快速教程之(九) Spring Cloud Alibaba--sentinel-限流、熔断降级
0.前言 sentinel的限流.降级功能强大,可以在控制面板中任意制定规则,然后推送到微服务中: 可以根据URL单独制定规则,也可以根据资源名批量制定规则: 需要注意的地方是:1.GITHUB文件在 ...
- (LNMP) Nginx_PHP_MariaDB
L用的是Centos7.5以上,主要是NMP三组件的安装记录. 通常会先安装一下依赖: yum install -y pcre-devel zlib-devel openssl-devel 使用yum ...
- Codeforces Round #599 (Div. 2) D. 0-1 MST(bfs+set)
Codeforces Round #599 (Div. 2) D. 0-1 MST Description Ujan has a lot of useless stuff in his drawers ...
- java-标准输入
package InputDemo; public class InputDemo1 { public static void main(String[] args) { /* 1. java.uti ...