我从我的学校成绩网站上获取信息并将其作为一个长字符串输出,这是输出:
[u'--']
[u'B', u'84']
[u'--']
[u'A-', u'90']
[u'--']
[u'C+', u'79']
[u'--']
[u'A', u'95']
[u'--']
[u'B', u'82']
[u'--']
[u'B', u'81']
我用它来获得输出
for cell in driver.find_elements_by_css_selector(".grid tr a[href$='fg=S2']"):
gradesList = cell.text.split('\n')
print gradesList
我想为每个等级分配一个变量,但我不确定如何将它们全部分开到每个变量
答案 0 :(得分:1)
看起来循环中的.split
调用会返回不同数量的元素,具体取决于您正在查看的HTML标记。如果没有任何方法可以过滤掉那些坏标签,这里有一个干净的解析方法,必要时跳过元素:
for cell in driver.find_elements_by_css_selector(".grid tr a[href$='fg=S2']"):
gradesList = cell.text.split('\n')
if len(gradesList) < 2:
continue
letter_grade, score = gradesList
# Use variables...
如果你能找到一种方法来避免使用“ - ”作为文本的元素(额外的CSS类?内容过滤器和你的解析器库?)我们可以得到一个很好的列表理解:
grade_elements = driver.find_elements_by_css_selector(".grid tr a[href$='fg=S2']")
grades = [g.text.split('\n') for g in grade_elements]