2017-10-25 4 views
-2

ジョブのテキストを印刷しようとしています。残念ながら、hrefが何を表示しません保持し、私は次のエラーを取得テキスト印刷するためのエラーを得続ける:私はのようなバリエーションを試してみましたhereAttributeError: 'str'オブジェクトに 'text'属性がありません。cssエラーが出力されました。

with open('Aperture Science.csv', 'a+', newline='\n') as file: 
     writer = csv.writer(file) 
     for section in sections: 
      try: 
       link = section.find_element_by_css_selector("h3 a").get_attribute("href") 
       print((section.get_attribute('href'))) 
      except NoSuchElementException: 
       pass 
      time.sleep(7) 
      try: 
       team_name = section.find_element_by_css_selector(".row:nth-child(1) td:nth-child(1)").text 
       print(section.text) 
      except NoSuchElementException: 
       pass 
      time.sleep(7) 
      try: 
       bet = section.find_element_by_css_selector(".odds .odds span").text 
       print(bet.text) 
      except NoSuchElementException: 
       pass 
      time.sleep(7) 
      writer.writerow((bet, team_name, link)) 

以下

Traceback (most recent call last): 
    File "C:/Users/Bain3/PycharmProjects/untitled4/Bookmaker improved ALTERNATIVE.py", 
line 155, in <module> 
    print(bet.text) 
AttributeError: 'str' object has no attribute 'text' 

コード、または完全なコードを:

for section in sections: 
    try: 
     link = section.find_element_by_css_selector("h3 a").get_attribute("href") 
     print((link.get_attribute('href'))) 

と同様に:

team_name = section.find_element_by_css_selector(".row:nth-child(1) td:nth-child(1)").text 
print(team_name.text) 

print(section.text)これは印刷したいテキストではありませんが、動作します。何か案は?

+0

を誤り – 0TTT0

+0

0TTT0 @ HTTPのバックトレース全体を投稿してください.com/d4ej7 – Tetora

+1

'bet = section.find ...(....)。text'を割り当て、' bet.text'が存在すると思いますか? –

答えて

1

bet = section.find_element_by_css_selector(".odds .odds span").textは既に最初のノードのテキスト値を返しました。

テキスト値のリストを印刷したい場合は、あなたが以下のようにfind_elementsの代わりfind_elementを使用する必要があります:// textuploader:

links = [link.get_attribute("href") for link in section.find_elements_by_css_selector("h3 a")] 
team_names = [team_name.text for team_name in section.find_elements_by_css_selector(".row:nth-child(1) td:nth-child(1)")] 
bets = [bet.text for bet in section.find_elements_by_css_selector(".odds .odds span")] 
writer.writerow(bets, team_names, links) 
+0

ありがとう! csvが正しく見えませんが、コンソールでうまく動作します。https://ibb.co/hm2YMR – Tetora

+1

更新された回答を確認してください。それは期待どおりに機能しますか? – Andersson

+0

ほとんどhttps://ibb.co/nCm7Fm – Tetora

0

もしteam_nameがsthのテキストなら、print(team_name)で十分です。

+0

ほぼ。それは私のために1つのテキストだけを印刷します。リストが必要な場所 – Tetora

関連する問題