2017-07-28 8 views
-1

私はeBayのものから名前と価格を収集しようとしています。たとえば、「armani」を検索しました.Seleniumを使用して最初のページのすべてのアイテムを収集し、リストに追加する必要があります。しかし、私は私のコードで問題いますidenticクラス(Selenium、Python)で多くの要素から情報を収集

mylist = list() 
for a in driver.find_element_by_xpath(".//*[@id='item3aeba8d9f0']/div"): 
    name = a.findElement(By.xpath(".//*[@id='item3aeba8d9f0']/div/div[2]/h3]")).getText() 
    price = a.findElement(By.xpath(".//*[@id='item3aeba8d9f0']/div/div[3]/div[2]/div/span[1]/span")).getText() 
    mylist.append(name, price) 
print(name) 

結果は次のようにすべきである:[[名、価格]、[名、価格]、...]

+0

「自分のコードの問題」とは何ですか?問題は具体的なものでなければなりません...エラーメッセージまたは問題の説明。 [ask]、特に[mcve](MCVE)の部分、[どのくらいの研究努力が期待されていますか]を読んでください(https://meta.stackoverflow.com/questions/261592/how-much-research-effort-これは、あなた自身のプログラムをデバッグし、自分で問題を解決するのに役立ちます。あなたがこれを行い、まだまだ立ち往生している場合は、あなたがMCVEを投稿し、何を試したのか、そしてエラーメッセージを含む実行結果を投稿して、より良くあなたを助けることができます。 – JeffC

答えて

0

をあなたにタプルを追加したいようですねフォームのリスト(名前、価格)。 また、Web要素のコレクションを反復処理するときに、単一のWeb要素を反復処理しようとしています。

mylist = list() 
for a in driver.find_elements_by_xpath(".//*[@id='item3aeba8d9f0']/div"): ##Change to .find_elements from .find_element 
    name = a.findElement(By.xpath(".//*[@id='item3aeba8d9f0']/div/div[2]/h3]")).getText() 
    price = a.findElement(By.xpath(".//*[@id='item3aeba8d9f0']/div/div[3]/div[2]/div/span[1]/span")).getText() 
    mylist.append((name, price)) // THE CHANGE IS HERE!!! 
    ##or you instead of tuples you could do a two element list. 
    mylist.append([name, price]) // THE CHANGE IS HERE!!! 
print(name) 
+0

問題はforループにあります。 –

+0

@NurislomTuraev 'driver.find_element_by_xpath(" ... ")'を 'driver.find_elements_by_xpath(" ... ")'に変更してみてください。 – TitusLucretius

関連する問題