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 に答える