我提前为术语中的任何错误道歉。我对HTML只有非常基本的知识,所以我不能保证我会正确引用所有内容。
无论如何,我正在用Python编写一个程序来自动为我上课的学生上传成绩。在我上传成绩的网站上,每个学生都有输入插槽,相关的HTML如下所示:
<div class="input text">
<label for="Grade0Value">Student Name</label>
<input name="data[Grade][0][value]" type="text" maxlength="11" value="10"
id="Grade0Value"></div>
到目前为止,我已经设法获得了我需要的一些信息:
ids = []
html = browser.page_source
soup = BeautifulSoup(html, 'html.parser')
for student in soup.find_all('label'):
ids.append(student)
返回:
[<label for="Grade0Value">Student Name</label>, . . . ]
由此,我需要两件事:学生的名字('学生姓名'),我使用
student.string
和“Grade0Value”。这是我无法弄清楚的。什么'属性'(如果这是正确的词)我需要为每个学生返回id(它标记为'label for =')吗?我可以使用与以前获得学生姓名相似的方法吗?
答案 0 :(得分:0)
from bs4 import BeautifulSoup
html_doc = """
<div class="input text">
<label for="Grade0Value">Student Name</label>
<input name="data[Grade][0][value]" type="text" maxlength="11" value="10"
id="Grade0Value"></div>
"""
soup = BeautifulSoup(html_doc, "html.parser")
ids = []
label_fors = []
for student in soup.find_all('label'):
ids.append(student.text)
label_fors.append(student.get('for'))
print(ids)
print(label_fors)
此代码将返回
['Student Name']
['Grade0Value']