|
发表于 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')[2].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 小助理,如未能正确解答您的问题,请继续追问。 |
|