python、seleniumをつかっています。
検索結果一覧をスクレイピングしていて、検索結果一覧は問題なくできていました。
以前こちらで質問したんですが、対象のサイトがhtmlとして正しくないみたいです。
htmlの中に同じidが複数あります。
結構このサイトのスクレイピングは難航しています。
今回検索結果一覧のスクレイピング中に詳細画面に遷移し、詳細画面の画像を取得するように改修しています。
詳細画面の画像は取得できたのですが、検索結果一覧に戻ったときtrが消えていました。
thだけの状態です。
そのためtrが参照できずにエラーとなっています。
driver.refresh()とかやってもtrは消えたままでした。
python
1while True: 2 tbl = driver.find_element_by_id("lst") 3 body = tbl.find_element_by_tag_name('tbody') 4 list_cells = [] 5 for tr_tag in body.find_elements_by_tag_name('tr'): 6 td_cnt=0 7 for td_tag in tr_tag.find_elements_by_tag_name('td'): 8 list_cells.append(td_tag.text.strip()) 9 if td_cnt==0: 10 #詳細に遷移 11 td_tag.click() 12 #画像取得 13 ... 14 ... 15 ... 16 #一覧に戻る 17 driver.find_element_by_name('bk').click() 18 #ページネーション 19 ... 20 ... 21 ...
エラーは以下です。
selenium.common.exceptions.StaleElementReferenceException
html自体不正なので難しいのかもしれませんが、trを表示させてループをエラー無く進めれるようにしたいです。
対処法知ってられたら教えてください。
お願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。