Tags 用靓汤榨取少量价值
我认为这不是一个正确的方法。代码应该如何提取“教师”和“学生”标记下的名称 假设您的HTML块在解析其他页面时不会有太大变化,您可以按类查找Tags 用靓汤榨取少量价值,tags,beautifulsoup,Tags,Beautifulsoup,我认为这不是一个正确的方法。代码应该如何提取“教师”和“学生”标记下的名称 假设您的HTML块在解析其他页面时不会有太大变化,您可以按类查找p标记(您的示例没有),并验证教师文本是否存在 如果是,则从元素上第一个a的p标记获取.contents[1] 接下来查找href属性与您的教师不匹配的所有a标记 例如: <a href="/name/nm12345/?ref_=adv_0" >Scott</a> 从bs4导入美化组 示例=“” 老师: | 学生: , , ,
p
标记(您的示例没有),并验证教师
文本是否存在
如果是,则从元素上第一个a
的p标记获取.contents[1]
接下来查找href
属性与您的教师不匹配的所有a
标记
例如:
<a href="/name/nm12345/?ref_=adv_0"
>Scott</a>
从bs4导入美化组
示例=“”
老师:
|
学生:
,
,
,
“”“
soup=BeautifulSoup(例如,“html.parser”)
教室=soup.find(x.get_text()中的lambda x:“教师”)
如果教室不是无:
教师=教室。内容[1]
教师URL=教师[“href”]
学生=教室。查找所有(lambda标记:tag.has_attr('href')和教师URL不在标记[“href”])
打印(教师文本)
对于学生中的学生:
打印(学生文本)
哪些产出:
斯科特
本尼迪克特
奇韦特尔
雷切尔
黄本笃
<a href="/name/nm12345/?ref_=adv_0"
>Scott</a>
from bs4 import BeautifulSoup
example = """<p class="">
Teacher:
<a href="/name/nm12345/?ref_=adv_0"
>Scott</a>
<span class="ghost">|</span>
Students:
<a href="/name/nm12345/?ref_=adv_1"
>Benedict</a>,
<a href="/name/nm12345/?ref_=adv_2"
>Chiwetel</a>,
<a href="/name/nm12345/?ref_=adv_3"
>Rachel</a>,
<a href="/name/nm12345/?ref_=adv_4"
>Benedict Wong</a>
</p>"""
soup = BeautifulSoup(example, "html.parser")
Classroom = soup.find(lambda x: "Teacher" in x.get_text())
if Classroom is not None:
Teacher = Classroom.contents[1]
TeacherUrl = Teacher["href"]
Students = Classroom.find_all(lambda tag: tag.has_attr('href') and TeacherUrl not in tag["href"])
print (Teacher.text)
for Student in Students:
print (Student.text)