#-*- coding:UTF-8 -*-
# 模拟定义一个完整的HTML源码
from attr import attrs
html = """
<html>
<head>
<title>test</title>
</head>
<body>
<p class='title' name='title_name'><b>once upon a time</b></p>
<p class='title1' name='title_name1'><b>once upon a time1</b></p>
<p class='title2' value='123' name='title_name2'><b>once upon a time2</b></p>
</body>
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'lxml') # lxml是解析方式 html 是模拟的页面
# 标准缩进方式
# soup.prettify()
title = soup.title
print(title.text) # 选择标签为title的text内容(String属性也可以) 只选择第一个
print()
head = soup.find('head')
print(head.title.text) # title是head的子节点,那么可以通过逗号 直接索引到title并打印该标签中的内容
print()
p_one = soup.find('p') # find函数 一样的做法 p 标签内容 只选择第一个
print(p_one.text)
print()
p_one_class = soup.find(class_='title') # find函数 类名寻找器 只选择第一个
print(p_one_class)
print()
p_s = soup.find_all('p') # find_all 也是查找 不过返回的是列表!!!应用for循环迭代其中的元素
for i, item in enumerate(p_s):
print(i, item.text)
PYTHON好助手-----BeautifulSoup
最新推荐文章于 2023-04-12 16:45:22 发布