とある比較サイトで複数の検索欄があるのですが
スクレイピングで得たリストの中にある要素を順番に入れていきたいです
最大検索欄数が5個までなのでfor文でなくても書こうと思えば以下のように書けます
Python
1fruit_list =['りんご','みかん','ぶどう','いちご','すいか'] 2driver.find_element_by_xpath('//*[@id="fruit_comparison"]/div/table/thead/tr[1]/th[3]/input').send_keys(fruit_list[0])#検索欄に入力 3sleep(5) 4driver.find_element_by_xpath('//*[@id="fruit_comparison"]/div/table/thead/tr[1]/th[3]/input').send_keys(Keys.ENTER)#確定 5sleep(5) 6driver.find_element_by_xpath('//*[@id="fruit_comparison"]/div/table/thead/tr[1]/th[4]/input').send_keys(fruit_list[1]) 7sleep(5) 8driver.find_element_by_xpath('//*[@id="fruit_comparison"]/div/table/thead/tr[1]/th[4]/input').send_keys(Keys.ENTER) 9sleep(5) 10driver.find_element_by_xpath('//*[@id="fruit_comparison"]/div/table/thead/tr[1]/th[5]/input').send_keys(fruit_list[2]) 11sleep(5) 12driver.find_element_by_xpath('//*[@id="fruit_comparison"]/div/table/thead/tr[1]/th[5]/input').send_keys(Keys.ENTER) 13sleep(5) 14driver.find_element_by_xpath('//*[@id="fruit_comparison"]/div/table/thead/tr[1]/th[6]/input').send_keys(fruit_list[3]) 15sleep(5) 16driver.find_element_by_xpath('//*[@id="fruit_comparison"]/div/table/thead/tr[1]/th[6]/input').send_keys(Keys.ENTER) 17sleep(5) 18driver.find_element_by_xpath('//*[@id="fruit_comparison"]/div/table/thead/tr[1]/th[7]/input').send_keys(fruit_list[4]) 19sleep(5) 20driver.find_element_by_xpath('//*[@id="fruit_comparison"]/div/table/thead/tr[1]/th[7]/input').send_keys(Keys.ENTER)
ですがこれでは見た目が綺麗ではなくスクレイピングの結果は日々違っており、結果によってはリストの中身が1個や2個だったり10個や20個になってしまうので次のようにしたいです
『fruit_listが1個以上の時、可能な限り検索欄に入力する。fruit_listが0個なら「ありません」と表示する』
一応自分自身でifとfor文で作ってみました
python
1if 0 < len(fruit_list): 2 for i in range(len(fruit_list[4])): 3 driver.find_elements_by_xpath('//*[@id="fruit_comparison"]/div/table/thead/tr[1]/th/input')[i+1].send_keys(fruit_list[i]) 4 sleep(5) 5 driver.find_elements_by_xpath('//*[@id="fruit_comparison"]/div/table/thead/tr[1]/th/input')[i+1].send_keys(Keys.ENTER) 6 sleep(5) 7else: 8 print('ありません')
と打ち込んでみたのですがどこか間違っていますでしょうか?
何かおかしい気がします
おかしいとすればどうすればよろしいでしょうか?
またこの場合はifとforではなくwhileのほうがいいのでしょうか?
何卒ご教授よろしくお願いいたします
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/09 15:11
2021/11/09 15:18
2021/11/10 03:22
2021/11/10 06:34
2021/11/10 13:07