提示:爬虫必备,BeautifulSoup!🙊
来源:麦当的日常笔记👑
前言
打个笔记,若有错误,还请指出
一,使用find()方法获取内容
1.name参数
from bs4 import BeautifulSoup
html_doc = """
<html>
<head>
<title>这是个标题</title>
</head>
<body>
<h1>这是一个一个简单的HTML</h1>
<p>Hello World!</p>
</body>
</html>
"""
soup = BeautifulSoup(html_doc,features='lxml')
print(soup.find_all(name='p')) # 打印所有p节点
print(soup.find_all(name='p')[0])
2.attrs参数
from bs4 import BeautifulSoup
html_doc = """
<html>
<head>
<title>这是个标题</title>
</head>
<body>
<p class="p-1" value = "1"><a href="https://www.baidu.com">我熬</a></p>
<h1>这是一个一个简单的HTML</h1>
<p>Hello World!</p>
</body>
</html>
"""
soup = BeautifulSoup(html_doc,features='lxml')
print(soup.find_all(attrs={'value':'1'})) # 打印value为1的所有内容
print(soup.find(class_='p-1')) # class为p-1的所有内容 赋值参数
print(soup.find(value='1')) # value为1的所有内容
3.text参数
from bs4 import BeautifulSoup
import re
html_doc = """
<html>
<head>
<title>这是个标题</title>
</head>
<body>
<p class="p-1" value = "1"><a href="https://www.baidu.com">我熬</a></p>
<p class="p-2" value = "1"><a href="https://www.baidu.com">我不熬</a></p>
<p class="p-3" value = "1"><a href="https://www.baidu.com">我熬啊</a></p>
<p class="p-4" value = "1"><a href="https://www.baidu.com">我不熬啊</a></p>
<h1>这是一个一个简单的HTML</h1>
<p>Hello World!</p>
</body>
</html>
"""
soup = BeautifulSoup(html_doc,features='lxml')
print(soup.find_all(text='我熬'))
print(soup.find_all(text=re.compile('熬')))
# 获取第一个的话就把_all去掉
# print(soup.find(text=re.compile('熬')))
二,使用css选择器获取节点内容
from bs4 import BeautifulSoup
html_doc = """
<html>
<head>
<title>这是个标题</title>
</head>
<body>
<p class="p-1" value = "1"><a href="https://www.baidu.com">我熬</a></p>
<p class="p-2" value = "1"><a href="https://www.baidu.com">我不熬</a></p>
<p class="p-3" value = "1"><a href="https://www.baidu.com">我熬啊</a></p>
<p class="p-4" value = "1"><a href="https://www.baidu.com">我不熬啊</a></p>
<h1>这是一个一个简单的HTML</h1>
<p>Hello World!</p>
</body>
</html>
"""
print(soup.select('p')) # 所有p节点内容
print(soup.select('p')[0]) # 第一个p节点内容
print(soup.select('html body h1')) # 逐层获取
print(soup.select('.p-4')) # 类名为p-4
print(soup.select('#id')) # 获取id为多少的节点(此处无id)
总结
以上就是今天要讲的内容,本文仅仅简单介绍了BeautifulSoup的基本用法, 学习是一个积累的过程, 切勿浮躁!