0

我从我的学校年级网站获取信息,它以长字符串形式出现,这是输出:

[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

我想为每个等级分配一个变量,但我不确定如何让它们全部分离到每个变量

4

1 回答 1

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]
于 2013-05-06T05:01:25.617 回答