2016-10-11 16 views
-1

私はPython 3を使用しています.HTMLコードの要素の値を抽出するのに助けが必要です。 Webページのコードの関連部分は次のようになります。Seleniumを使用した要素の値を抽出する

<span class="ng-isolate-scope" star-rating="4.61" size="22"> 

私は現在、セレン及びGET_ATTRIBUTE機能を使用していますが、私は4.61値を抽出することができていません。いくつかのWebページをループする必要があるので、コードの関連部分は次のようになります。

stars=[] 
i=driver.find_elements_by_xpath("//*[@star-rating]") 
for y in i: 
    temp=str(y.get_attribute("value")) 
    stars.append(temp) 

しかし、私が期待するように動作しません。私がここで間違っていることに関して私を助けてくれますか?あなたのお時間をありがとう! - あなたは文字列として属性値を取得しますあなたはget_attribute()の結果にstr()を呼び出す必要はありません

temp = y.get_attribute("star-rating")) 

注:

答えて

2

ではなくvaluestar-rating属性を取得します。

また、コードを改善し、リストの内包表記を使用して、単一の行で評価を収集することができます。

stars = [elm.get_attribute("star-rating") 
     for elm in driver.find_elements_by_xpath("//*[@star-rating]")] 

そして、あなたはフロートとして評価が必要な場合は、float()を呼び出す:

stars = [float(elm.get_attribute("star-rating")) 
     for elm in driver.find_elements_by_xpath("//*[@star-rating]")] 

さらに、簡潔になるとCSS selector

stars = [float(elm.get_attribute("star-rating")) 
     for elm in driver.find_elements_by_css_selector("[star-rating]")] 
+0

完全に機能しました。ありがとう@alecxe!コーディングに関する提案をいただき、ありがとうございます。 – MME

関連する問題