スクレイピングをしています。
タイトルに書いたエラーが出て困っています。
いろいろサイトを見てやってみたのですが、全く解消できませんでした。
やりたいことは検索一覧のスクレイピング中に詳細画面に行き詳細画面をスクレイピングした後に検索一覧に戻り検索一覧のスクレイピングを再開するということです。
1.検索一覧画面(table)をループしながらスクレイピング
2.詳細画面に遷移
3.詳細画面をスクレイピング
4.検索一覧画面に遷移
5.検索一覧画面を再開ループしながらスクレイピング
どうしても5の再開ループして要素取得でエラーになってしまいます。
python+selenium
1#list_url=driver.current_url 2while True: 3 driver.get(driver.current_url) 4 tbl = driver.find_element_by_id("list") 5 body = tbl.find_element_by_tag_name('tbody') 6 for items in body.find_elements_by_tag_name('tr'): 7 elm=items.find_element_by_class_name('xxx') #詳細画面から戻って再度ループした後にここでエラーになる 8 if elm: 9 x=elm.text 10 #詳細画面へ 11 elm.click() 12 time.sleep(2) 13 #詳細スクレイピング 14 #一覧へ戻る 15 driver.find_element_by_id('abc').click() 16 WebDriverWait(driver, 10).until( 17 EC.visibility_of_element_located((By.ID, "list")) 18 ) 19 driver.implicitly_wait(10) 20 #time.sleep(10) #これにきりかえてもだめでした 21 #driver.get(list_url) 22 #driver.refresh() 23 else: 24 x=''
タイトルのようなエラーを解消するため、どのような対応をされているかお聞きしたいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー