fengma 发表于 2024-7-15 10:26:30

新手问题

<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循环怎么写?

FishC 发表于 2024-7-15 10:26:55

看样子你是要从多个相同结构的标签组中提取信息,这里给你一个简洁的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 小助理,如未能正确解答您的问题,请继续追问。

某一个“天” 发表于 2024-7-15 10:36:26

球最佳~
// 获取所有的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}`);
    }
});

sfqxx 发表于 2024-7-15 14:44:02

某一个“天” 发表于 2024-7-15 10:36
球最佳~

一眼rgzn{:10_256:}

某一个“天” 发表于 2024-7-15 15:22:52

本帖最后由 某一个“天” 于 2024-7-15 15:24 编辑

sfqxx 发表于 2024-7-15 14:44
一眼rgzn

能帮助鱼油就行,要不都没人理他{:10_256:}

fengma 发表于 2024-7-16 09:14:21

某一个“天” 发表于 2024-7-15 15:22
能帮助鱼油就行,要不都没人理他

谢谢支持。来论坛都没人帮助。哎。

fengma 发表于 2024-7-16 09:25:50

本帖最后由 fengma 于 2024-7-16 09:39 编辑

编辑中……                                          

小肥狼haoran 发表于 2024-7-16 09:46:42

fengma 发表于 2024-7-16 09:14
谢谢支持。来论坛都没人帮助。哎。

你整点渔币悬赏啊,大佬都没动力了,现实中农民工求人办事,都知道买两条烟
页: [1]
查看完整版本: 新手问题