2017-12-14 17 views
0

用語の誤りについて事前にお詫び申し上げます。私はHTMLの非常に初歩的な知識しか持っていないので、私はすべてを正しく参照することを約束できません。美味しいスープ4:クラスから特定の属性を取得する

とにかく、私はPythonで、私が教えるクラスの学生の成績を自動的にアップロードするプログラムを書いています。

<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> 

これまでのところ、私はこのように必要な情報の一部を取得するために管理している:私は成績をアップロードするウェブサイトでは、各学生のための入力スロットは、次のようになり、関連するHTMLと、そこにあります返し

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>, . . . ] 

をこのことから、私は2つのことを必要とします

student.string 

と "Grade0Value"。これは私が理解できないものです。どのような '属性'(それが正しい単語ならば)私はIDを返すために取得する必要があります(それは 'ラベル=')各学生のために言う?私は学生の名前を取得するために私が使用したのと同様の方法を使用してそれを行うことはできますか?

+0

を返しますあなたは – bigbounty

+0

、私が試してみてくださいなもののいくつかの例にはどのようなものがあり、美しいスープの特定の要素を取得するために、attrsに指定することができますか?私はいくつか無作為に試しましたが、私は非常に多くを知らないし、私がテストしたものはどれも働いていません。 –

+0

ドキュメントを参照してくださいhttps://www.crummy.com/software/BeautifulSoup/bs4/doc/ – bigbounty

答えて

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'] 
関連する問題