新手问题
<ul class="full"><li id="D197listImg-572b4b91-200e-4690-8d3a-3913ea200dfc/0" data-url="" class="li-active">
<div class="tags">专题班</div>
<div class="context text-overflow active-status li-active">
<span class="active">正在进行</span>
<span class="li-active">培训班1</span>
</div>
</li>
<li id="D197listImg-d4fe3660-95f1-4a10-81c5-0ce5e4655d69/1" data-url="" class="">
<div class="tags">专题班</div>
<div class="context text-overflowactive-status ">
<span class=" active ">正在进行</span>
<span>培训班2</span>
</div>
</li>
<li id="D197listImg-c1fc2792-50c0-4850-a872-5dbaab28064e/2" data-url="" class="">
<div class="tags">专题班</div>
<div class="context text-overflowactive-status ">
<span class=" active ">正在进行</span>
<span>培训班3</span>
</div>
</li>
<li id="D197listImg-5b43f47f-a68c-4e9f-ae51-3ba9577f648b/3" data-url="" class="">
<div class="tags">专题班</div>
<div class="context text-overflowactive-status ">
<span class=" active ">正在进行</span>
<span>培训班4</span>
</div>
</li>
</ul>
在每组<li>标签内获取信息:
第一组 <span class="li-active">:获取文字是培训会1
第二至四组 <span>:分别获取文字是培训会2、培训会3、培训会4
这个for循环怎么写? 看样子你是要从多个相同结构的标签组中提取信息,这里给你一个简洁的Python示例,使用BeautifulSoup来解析HTML并提取你需要的信息。
首先,假设你有以下HTML结构:
<div class="topic">
<span>专题班</span>
<span>正在进行</span>
<span>培训班1</span>
</div>
<div class="topic">
<span>专题班</span>
<span>正在进行</span>
<span>培训班2</span>
</div>
<div class="topic">
<span>专题班</span>
<span>正在进行</span>
<span>培训班3</span>
</div>
<div class="topic">
<span>专题班</span>
<span>正在进行</span>
<span>培训班4</span>
</div>
接下来,用BeautifulSoup来解析并提取数据:
from bs4 import BeautifulSoup
html_doc = '''
<div class="topic">
<span>专题班</span>
<span>正在进行</span>
<span>培训班1</span>
</div>
<div class="topic">
<span>专题班</span>
<span>正在进行</span>
<span>培训班2</span>
</div>
<div class="topic">
<span>专题班</span>
<span>正在进行</span>
<span>培训班3</span>
</div>
<div class="topic">
<span>专题班</span>
<span>正在进行</span>
<span>培训班4</span>
</div>
'''
soup = BeautifulSoup(html_doc, 'html.parser')
# 找到所有的<div class="topic">
topics = soup.find_all('div', class_='topic')
# 使用for循环提取每个div中的第三个<span>的内容
for i, topic in enumerate(topics, start=1):
span_text = topic.find_all('span').get_text()
print(f"培训班{i}: {span_text}")
这个for循环做了以下几件事:
1. 使用`find_all`方法找到所有的`<div class="topic">`标签。
2. 遍历这些`<div>`标签,每一个`<div>`内再使用`find_all`找到所有的`<span>`标签。
3. 获取第三个`<span>`的文字内容(即索引为2的元素)。
4. 使用`enumerate`来自动生成培训班的编号,并打印出结果。
输出结果应该是:
培训班1: 培训班1
培训班2: 培训班2
培训班3: 培训班3
培训班4: 培训班4
这样,每个标签组内的信息都被成功提取出来了。希望这个例子对你有所帮助,编码愉快!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 球最佳~
// 获取所有的li元素
const listItems = document.querySelectorAll('ul.full li');
// 遍历每一个li元素
listItems.forEach((item, index) => {
// 查找当前li下的span元素
const spans = item.querySelectorAll('span');
// 假设每个li中最多有两个span元素,第一个用于状态(如“正在进行”),第二个用于培训班名称
if (spans.length > 1) {
// 第一个span是状态,第二个span是培训班名称
const trainingName = spans.textContent.trim();
// 检查是否需要特别处理第一个li(具有li-active类的那个)
if (index === 0 && item.querySelector('.li-active')) {
// 这里我们假设第一个li的培训班名称也是通过第二个span获取的,
// 但实际上它可能直接通过.li-active类获取,不过根据你的HTML结构,我们不需要这样做
console.log(`第一组 <span class="li-active">:获取文字是${trainingName}`);
} else {
// 对于第二至四组,直接输出培训班名称
console.log(`第${index + 1}组 <span>:获取文字是${trainingName}`);
}
} else if (spans.length === 1 && item.querySelector('.li-active')) {
// 如果只有一个span且带有li-active类,则可能是第一组且培训班名称就在这个span里
// 但根据你的HTML,这种情况不存在,因为第一个li的培训班名称在第二个span里
// 这里只是作为一个理论上的处理示例
const trainingName = spans.textContent.trim();
console.log(`第一组 <span class="li-active">:获取文字是${trainingName}`);
}
}); 某一个“天” 发表于 2024-7-15 10:36
球最佳~
一眼rgzn{:10_256:} 本帖最后由 某一个“天” 于 2024-7-15 15:24 编辑
sfqxx 发表于 2024-7-15 14:44
一眼rgzn
能帮助鱼油就行,要不都没人理他{:10_256:} 某一个“天” 发表于 2024-7-15 15:22
能帮助鱼油就行,要不都没人理他
谢谢支持。来论坛都没人帮助。哎。 本帖最后由 fengma 于 2024-7-16 09:39 编辑
编辑中…… fengma 发表于 2024-7-16 09:14
谢谢支持。来论坛都没人帮助。哎。
你整点渔币悬赏啊,大佬都没动力了,现实中农民工求人办事,都知道买两条烟
页:
[1]