接上节课内容,了解内容定位:
1.右键【检查】
2.用鼠标点击右上角的箭头
3.
find_all()
代码的作用
BeautifulSoup 中的 find_all() 函数,可以根据标签名,获取soup中的节点。
例如:
BeautifulSoup 对象
变量 soup 是一个 BeautifulSoup 对象,调用 soup 使用 find_all() 函数就能查找 HTML 中的内容。
find_all()函数
find_all() 函数可以查询 soup 中所有符合条件的元素,组成一个列表赋值给ps。
name参数
find_all(name="标签") 根据标签名查询节点
示例代码中,如果我们想要获取 h1 标签所在的节点,可以在 find_all() 中,传入 name 参数,其参数值为 h1 。
由于 name 可以省略,我们也可以直接传入参数值。
赋值变量
将返回的结果,赋值给一个变量。输出的结果是包含所有 h1 节点的列表。
编写简单代码,实现提取<em></em>中的内容
PS:find_all() 返回的是一个列表
由于 find_all() 返回的是一个列表,我们不能直接调用 .string 属性。
我们需要使用 for 循环遍历列表,获取每一个节点字符串,再来调用 .string 属性获取节点中的标签里的内容。
# 使用import导入requests模块
import requests
# 从bs4中导入BeautifulSoup模块
from bs4 import BeautifulSoup
# 将URL地址赋值给变量url
url = "https://nocturne-spider.baicizhan.com/2020/08/07/1/"
# 将变量url传入requests.get(),赋值给response
response = requests.get(url)
# 将服务器响应内容转换为字符串形式,赋值给html
html = response.text
# 使用BeautifulSoup()读取html,添加lxml解析器,赋值给soup
soup = BeautifulSoup(html, "lxml")
# 使用find_all()查询soup中em的节点,赋值给content_all
content_all = soup.find_all(name="em")
# for循环遍历content_all
for content in content_all:
# 获取每个节点中标签内的内容,赋值给contentString
contentString = content.string
# 使用print输出contentString
print(contentString)
PS:windows系统使用Ctrl+F
代码总结:
Import requests
From bs4 import BeautifulSoup
url=“http://+地址+/”
response=request.get(url)//找到网页
html=response.text//转化字符串
soup=BeautifulSoup(http,“lxml”)//将HTML标准化
content_all=soup.find_all(name=”p”)
for content in content_all:
contentSoup=content.string//提取文字内容
print(contentSoup)
下节课,我们继续了解string的不同应用
总结:
1. 导入 BeautifulSoup ;
2. 使用 BeautifulSoup() 函数对相应内容进行解析;
3. 使用 find_all() 提取网页节点。
过程:
1. 向网页发送请求,获取网页源代码;
2. 导入新的模块,解析网页源代码;
3. 查看网页中的数据节点;
4. 解析内容,提取节点的数据;
5. 学习查找节点的方法,提取节点中的内容。
看一看有什么不记得的内容,这是前几天的内容,多复习一下。
我们选择用边写项目边学习的方法来具体了解爬虫中的简单知识点。到最后一个项目的时候,大家就能够对 多数的网页 去爬取自己所需要的信息。
欢迎大家学习和交流!!
夜曲打卡第四天